From f6a58507820c67e8d0fb07875cd1b1d9f5e510a8 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 16 Mar 2020 17:41:44 +0100 Subject: bpo-35370: PyEval_SetTrace() logs unraisable error (GH-18977) If PySys_Audit() fails in PyEval_SetProfile() or PyEval_SetTrace(), log the error as an unraisable exception. --- Python/ceval.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'Python/ceval.c') diff --git a/Python/ceval.c b/Python/ceval.c index fc4f718de2..b359fb0798 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4620,7 +4620,10 @@ void PyEval_SetProfile(Py_tracefunc func, PyObject *arg) { PyThreadState *tstate = _PyThreadState_GET(); - (void)_PyEval_SetProfile(tstate, func, arg); + if (_PyEval_SetProfile(tstate, func, arg) < 0) { + /* Log PySys_Audit() error */ + _PyErr_WriteUnraisableMsg("in PyEval_SetProfile", NULL); + } } int @@ -4661,7 +4664,10 @@ void PyEval_SetTrace(Py_tracefunc func, PyObject *arg) { PyThreadState *tstate = _PyThreadState_GET(); - (void)_PyEval_SetTrace(tstate, func, arg); + if (_PyEval_SetTrace(tstate, func, arg) < 0) { + /* Log PySys_Audit() error */ + _PyErr_WriteUnraisableMsg("in PyEval_SetTrace", NULL); + } } -- cgit v1.2.1