From 044a593cbbe1639e906e06c47504dd1020ddfee4 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Sun, 17 Jul 2022 16:11:24 +0100 Subject: gh-91348: Restore frame argument to sys._getframe audit event (GH-94928) --- Python/sysmodule.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'Python') diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 93120071b40..a5fa551b957 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1772,10 +1772,6 @@ sys__getframe_impl(PyObject *module, int depth) PyThreadState *tstate = _PyThreadState_GET(); _PyInterpreterFrame *frame = tstate->cframe->current_frame; - if (_PySys_Audit(tstate, "sys._getframe", NULL) < 0) { - return NULL; - } - if (frame != NULL) { while (depth > 0) { frame = frame->previous; @@ -1793,7 +1789,13 @@ sys__getframe_impl(PyObject *module, int depth) "call stack is not deep enough"); return NULL; } - return _Py_XNewRef((PyObject *)_PyFrame_GetFrameObject(frame)); + + PyObject *pyFrame = Py_XNewRef((PyObject *)_PyFrame_GetFrameObject(frame)); + if (pyFrame && _PySys_Audit(tstate, "sys._getframe", "(O)", pyFrame) < 0) { + Py_DECREF(pyFrame); + return NULL; + } + return pyFrame; } /*[clinic input] -- cgit v1.2.3