From: Brandt Bucher Date: Wed, 6 Sep 2023 20:59:50 +0000 (-0700) Subject: GH-104584: Restore frame->stacktop on optimizer error (GH-108953) X-Git-Tag: v3.13.0a1~575 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6971e40c2e02181e486b52f4f6bf98709d35443c;p=thirdparty%2FPython%2Fcpython.git GH-104584: Restore frame->stacktop on optimizer error (GH-108953) --- diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-09-05-11-31-27.gh-issue-104584.IRSXA2.rst b/Misc/NEWS.d/next/Core and Builtins/2023-09-05-11-31-27.gh-issue-104584.IRSXA2.rst new file mode 100644 index 000000000000..7f556bf8c31c --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2023-09-05-11-31-27.gh-issue-104584.IRSXA2.rst @@ -0,0 +1,2 @@ +Fix a crash when running with :envvar:`PYTHONUOPS` or :option:`-X uops <-X>` +enabled and an error occurs during optimization. diff --git a/Python/optimizer.c b/Python/optimizer.c index 8aaf9f9fd7cb..c6d0f9e5bf22 100644 --- a/Python/optimizer.c +++ b/Python/optimizer.c @@ -169,6 +169,7 @@ _PyOptimizer_BackEdge(_PyInterpreterFrame *frame, _Py_CODEUNIT *src, _Py_CODEUNI if (err <= 0) { assert(executor == NULL); if (err < 0) { + _PyFrame_SetStackPointer(frame, stack_pointer); return NULL; } goto jump_to_destination;