From: Pablo Galindo Salgado Date: Thu, 13 Feb 2025 01:07:01 +0000 (+0000) Subject: GH-91048: Correct error path in testexternalinspection (#129557) X-Git-Tag: v3.14.0a6~443 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=49b11033bd87fb26eb4b74ba2451ed30b1af9780;p=thirdparty%2FPython%2Fcpython.git GH-91048: Correct error path in testexternalinspection (#129557) --- diff --git a/Modules/_testexternalinspection.c b/Modules/_testexternalinspection.c index f1e331fea475..77984460400c 100644 --- a/Modules/_testexternalinspection.c +++ b/Modules/_testexternalinspection.c @@ -410,6 +410,7 @@ get_py_runtime(pid_t pid) { uintptr_t address = search_map_for_section(pid, "PyRuntime", "libpython"); if (address == 0) { + PyErr_Clear(); address = search_map_for_section(pid, "PyRuntime", "python"); } return address; @@ -1458,6 +1459,13 @@ get_stack_trace(PyObject* self, PyObject* args) } uintptr_t runtime_start_address = get_py_runtime(pid); + if (runtime_start_address == 0) { + if (!PyErr_Occurred()) { + PyErr_SetString( + PyExc_RuntimeError, "Failed to get .PyRuntime address"); + } + return NULL; + } struct _Py_DebugOffsets local_debug_offsets; if (read_offsets(pid, &runtime_start_address, &local_debug_offsets)) { @@ -1511,6 +1519,13 @@ get_async_stack_trace(PyObject* self, PyObject* args) } uintptr_t runtime_start_address = get_py_runtime(pid); + if (runtime_start_address == 0) { + if (!PyErr_Occurred()) { + PyErr_SetString( + PyExc_RuntimeError, "Failed to get .PyRuntime address"); + } + return NULL; + } struct _Py_DebugOffsets local_debug_offsets; if (read_offsets(pid, &runtime_start_address, &local_debug_offsets)) {