From 85b403fa4471488a5cf853ceea4a9e6a44b69394 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Thu, 21 Jul 2022 21:49:49 +0800 Subject: [PATCH] Fix PyCode_Addr2Location when addrq < 0 (GH-95091) (cherry picked from commit a6daaf2a132efbb1965b4502ff8a8cf3b5afed0e) Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> --- .../2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst | 2 ++ Objects/codeobject.c | 1 + 2 files changed, 3 insertions(+) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst new file mode 100644 index 00000000000000..160999e82bf081 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-21-19-19-20.gh-issue-95060.4xdT1f.rst @@ -0,0 +1,2 @@ +Undocumented ``PyCode_Addr2Location`` function now properly returns when +``addrq`` argument is less than zero. diff --git a/Objects/codeobject.c b/Objects/codeobject.c index 4859b1ecebe50f..35576a283b8248 100644 --- a/Objects/codeobject.c +++ b/Objects/codeobject.c @@ -969,6 +969,7 @@ PyCode_Addr2Location(PyCodeObject *co, int addrq, if (addrq < 0) { *start_line = *end_line = co->co_firstlineno; *start_column = *end_column = 0; + return 1; } assert(addrq >= 0 && addrq < _PyCode_NBYTES(co)); PyCodeAddressRange bounds;