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]

Reply via email to