https://github.com/python/cpython/commit/6603289847b14d48800566fb00264aa3d73f3ceb
commit: 6603289847b14d48800566fb00264aa3d73f3ceb
branch: 3.14
author: Jelle Zijlstra <[email protected]>
committer: JelleZijlstra <[email protected]>
date: 2026-10-21T19:13:20Z
summary:
[3.14] gh-159739: Avoid destroying a remote unwinder cache twice (GH-159982)
(#160084)
Leave cleanup of the code-object cache to the unwinder deallocator if
allocating the thread-local bytecode cache fails.
(cherry picked from commit b577a5403ad513e6f28ec28630b5ee09a5f521ab)
files:
A Misc/NEWS.d/next/Library/2026-10-20-00-00-00.gh-issue-159739.5d4269.rst
M Modules/_remote_debugging_module.c
diff --git
a/Misc/NEWS.d/next/Library/2026-10-20-00-00-00.gh-issue-159739.5d4269.rst
b/Misc/NEWS.d/next/Library/2026-10-20-00-00-00.gh-issue-159739.5d4269.rst
new file mode 100644
index 00000000000000..94ee3cf4790112
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2026-10-20-00-00-00.gh-issue-159739.5d4269.rst
@@ -0,0 +1 @@
+Fix a double free if remote unwinder initialization runs out of memory.
diff --git a/Modules/_remote_debugging_module.c
b/Modules/_remote_debugging_module.c
index 0d11f13295df97..18f915e022b94f 100644
--- a/Modules/_remote_debugging_module.c
+++ b/Modules/_remote_debugging_module.c
@@ -3277,7 +3277,6 @@
_remote_debugging_RemoteUnwinder___init___impl(RemoteUnwinderObject *self,
NULL
);
if (self->tlbc_cache == NULL) {
- _Py_hashtable_destroy(self->code_object_cache);
PyErr_NoMemory();
set_exception_cause(self, PyExc_MemoryError, "Failed to create TLBC
cache");
return -1;
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]