summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2020-03-16 18:18:20 +0100
committerGitHub <noreply@github.com>2020-03-16 18:18:20 +0100
commit046255c40fc0d9c5a4c528eb5955792fa08df66f (patch)
treeb4f3c3601fa6de928cbdb1443bf002babd527c73
parent7f5302fed4ff0cc8042e639b29a0664a16bc2702 (diff)
downloadcpython-git-046255c40fc0d9c5a4c528eb5955792fa08df66f.tar.gz
bpo-35370: PyEval_SetTrace() logs unraisable error (GH-18977) (GH-19029)
If PySys_Audit() fails in PyEval_SetProfile() or PyEval_SetTrace(), log the error as an unraisable exception. (cherry picked from commit f6a58507820c67e8d0fb07875cd1b1d9f5e510a8)
-rw-r--r--Misc/NEWS.d/next/C API/2020-03-13-16-44-23.bpo-35370.sXRA-r.rst2
-rw-r--r--Python/ceval.c2
2 files changed, 4 insertions, 0 deletions
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
index 0000000000..d3f1d293b6
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2020-03-13-16-44-23.bpo-35370.sXRA-r.rst
@@ -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.
diff --git a/Python/ceval.c b/Python/ceval.c
index 5d78d5a393..2db6e6bf8e 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -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;
}