]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-150406: Check result of PyThread_allocate_lock() for netdb_lock (GH-150407)
authorThomas Kowalski <thom.kowa@gmail.com>
Sat, 30 May 2026 16:25:40 +0000 (18:25 +0200)
committerGitHub <noreply@github.com>
Sat, 30 May 2026 16:25:40 +0000 (16:25 +0000)
Misc/NEWS.d/next/Library/2026-05-25-17-00-00.gh-issue-150406.jF3g63.rst [new file with mode: 0644]
Modules/socketmodule.c

diff --git a/Misc/NEWS.d/next/Library/2026-05-25-17-00-00.gh-issue-150406.jF3g63.rst b/Misc/NEWS.d/next/Library/2026-05-25-17-00-00.gh-issue-150406.jF3g63.rst
new file mode 100644 (file)
index 0000000..230e961
--- /dev/null
@@ -0,0 +1,3 @@
+Fix a possible crash occurring during :mod:`socket` module initialization
+when the system is out of memory on platforms without a reentrant
+``gethostbyname``.
index 566989d648d2f73575e89d3295f4b1e290ec6d75..3eaa8cf75482397098e9ae2a94e53e8ecf8c0cb8 100644 (file)
@@ -9293,6 +9293,9 @@ socket_exec(PyObject *m)
     /* Initialize gethostbyname lock */
 #if defined(USE_GETHOSTBYNAME_LOCK)
     netdb_lock = PyThread_allocate_lock();
+    if (netdb_lock == NULL) {
+        goto error;
+    }
 #endif
 
 #ifdef MS_WINDOWS