diff options
Diffstat (limited to 'Python/ceval.c')
-rw-r--r-- | Python/ceval.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index 1bb4704572..781b10dfac 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4555,6 +4555,10 @@ maybe_call_line_trace(Py_tracefunc func, PyObject *obj, void PyEval_SetProfile(Py_tracefunc func, PyObject *arg) { + if (PySys_Audit("sys.setprofile", NULL) < 0) { + return; + } + PyThreadState *tstate = _PyThreadState_GET(); PyObject *temp = tstate->c_profileobj; Py_XINCREF(arg); @@ -4572,6 +4576,10 @@ PyEval_SetProfile(Py_tracefunc func, PyObject *arg) void PyEval_SetTrace(Py_tracefunc func, PyObject *arg) { + if (PySys_Audit("sys.settrace", NULL) < 0) { + return; + } + _PyRuntimeState *runtime = &_PyRuntime; PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); PyObject *temp = tstate->c_traceobj; @@ -4608,6 +4616,11 @@ void _PyEval_SetCoroutineWrapper(PyObject *wrapper) { PyThreadState *tstate = _PyThreadState_GET(); + + if (PySys_Audit("sys.set_coroutine_wrapper", NULL) < 0) { + return; + } + Py_XINCREF(wrapper); Py_XSETREF(tstate->coroutine_wrapper, wrapper); } @@ -4623,6 +4636,11 @@ void _PyEval_SetAsyncGenFirstiter(PyObject *firstiter) { PyThreadState *tstate = _PyThreadState_GET(); + + if (PySys_Audit("sys.set_asyncgen_hook_firstiter", NULL) < 0) { + return; + } + Py_XINCREF(firstiter); Py_XSETREF(tstate->async_gen_firstiter, firstiter); } @@ -4638,6 +4656,11 @@ void _PyEval_SetAsyncGenFinalizer(PyObject *finalizer) { PyThreadState *tstate = _PyThreadState_GET(); + + if (PySys_Audit("sys.set_asyncgen_hook_finalizer", NULL) < 0) { + return; + } + Py_XINCREF(finalizer); Py_XSETREF(tstate->async_gen_finalizer, finalizer); } |