From: krylosov-aa Date: Tue, 10 Mar 2026 13:59:37 +0000 (+0300) Subject: [3.13] gh-145301: Fix double-free in hashlib initialization (GH-145321) (GH-145532) X-Git-Tag: v3.13.13~112 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ba0d1b7deecf221597b2858c46fe6c4ff6f8417e;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-145301: Fix double-free in hashlib initialization (GH-145321) (GH-145532) (cherry picked from commit 6acaf659ef0fdee131bc02f0b58685da039b5855) --- diff --git a/Misc/NEWS.d/next/Library/2026-02-27-19-00-26.gh-issue-145301.2Wih4b.rst b/Misc/NEWS.d/next/Library/2026-02-27-19-00-26.gh-issue-145301.2Wih4b.rst new file mode 100644 index 000000000000..7aeb6a1145ab --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-02-27-19-00-26.gh-issue-145301.2Wih4b.rst @@ -0,0 +1,2 @@ +:mod:`hashlib`: fix a crash when the initialization of the underlying C +extension module fails. diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c index 5e4783395f4f..bf3894e4ffbe 100644 --- a/Modules/_hashopenssl.c +++ b/Modules/_hashopenssl.c @@ -239,7 +239,7 @@ py_hashentry_table_new(void) { if (h->py_alias != NULL) { if (_Py_hashtable_set(ht, (const void*)entry->py_alias, (void*)entry) < 0) { - PyMem_Free(entry); + /* entry is already in ht, will be freed by _Py_hashtable_destroy() */ goto error; } entry->refcnt++;