]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-35370: PyEval_SetTrace() logs unraisable error (GH-18977) (GH-19029)
authorVictor Stinner <vstinner@python.org>
Mon, 16 Mar 2020 17:18:20 +0000 (18:18 +0100)
committerGitHub <noreply@github.com>
Mon, 16 Mar 2020 17:18:20 +0000 (18:18 +0100)
If PySys_Audit() fails in PyEval_SetProfile() or PyEval_SetTrace(),
log the error as an unraisable exception.

(cherry picked from commit f6a58507820c67e8d0fb07875cd1b1d9f5e510a8)

Misc/NEWS.d/next/C API/2020-03-13-16-44-23.bpo-35370.sXRA-r.rst [new file with mode: 0644]
Python/ceval.c

diff --git a/Misc/NEWS.d/next/C API/2020-03-13-16-44-23.bpo-35370.sXRA-r.rst b/Misc/NEWS.d/next/C API/2020-03-13-16-44-23.bpo-35370.sXRA-r.rst
new file mode 100644 (file)
index 0000000..d3f1d29
--- /dev/null
@@ -0,0 +1,2 @@
+If :c:func:`PySys_Audit` fails in :c:func:`PyEval_SetProfile` or
+:c:func:`PyEval_SetTrace`, log the error as an unraisable exception.
index 5d78d5a39357dcdfb3f480805414e1bd72da3407..2db6e6bf8ebdb33f6d3b35db62d8b50a797a4d5d 100644 (file)
@@ -4686,6 +4686,7 @@ void
 PyEval_SetProfile(Py_tracefunc func, PyObject *arg)
 {
     if (PySys_Audit("sys.setprofile", NULL) < 0) {
+        _PyErr_WriteUnraisableMsg("in PyEval_SetProfile", NULL);
         return;
     }
 
@@ -4707,6 +4708,7 @@ void
 PyEval_SetTrace(Py_tracefunc func, PyObject *arg)
 {
     if (PySys_Audit("sys.settrace", NULL) < 0) {
+        _PyErr_WriteUnraisableMsg("in PyEval_SetTrace", NULL);
         return;
     }