[Python-checkins] gh-101975: Fixed a potential SegFault on garbage collection (GH-102803)

markshannon webhook-mailer at python.org
Sat Mar 18 06:59:28 EDT 2023


https://github.com/python/cpython/commit/039714d00f147be4d018fa6aeaf174aad7e8fa32
commit: 039714d00f147be4d018fa6aeaf174aad7e8fa32
branch: main
author: gaogaotiantian <gaogaotiantian at hotmail.com>
committer: markshannon <mark at hotpy.org>
date: 2023-03-18T10:59:21Z
summary:

gh-101975: Fixed a potential SegFault on garbage collection (GH-102803)

files:
A Misc/NEWS.d/next/Core and Builtins/2023-03-18-02-36-39.gh-issue-101975.HwMR1d.rst
M Python/ceval_macros.h

diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-03-18-02-36-39.gh-issue-101975.HwMR1d.rst b/Misc/NEWS.d/next/Core and Builtins/2023-03-18-02-36-39.gh-issue-101975.HwMR1d.rst
new file mode 100644
index 000000000000..28c9a8465180
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2023-03-18-02-36-39.gh-issue-101975.HwMR1d.rst	
@@ -0,0 +1 @@
+Fixed ``stacktop`` value on tracing entries to avoid corruption on garbage collection.
diff --git a/Python/ceval_macros.h b/Python/ceval_macros.h
index 98b72ec1b364..c2257515a305 100644
--- a/Python/ceval_macros.h
+++ b/Python/ceval_macros.h
@@ -310,6 +310,7 @@ GETITEM(PyObject *v, Py_ssize_t i) {
         _PyFrame_SetStackPointer(frame, stack_pointer); \
         int err = trace_function_entry(tstate, frame); \
         stack_pointer = _PyFrame_GetStackPointer(frame); \
+        frame->stacktop = -1; \
         if (err) { \
             goto error; \
         } \



More information about the Python-checkins mailing list