Issue #23998: PyImport_ReInitLock() now checks for lock allocation error
diff --git a/Misc/NEWS b/Misc/NEWS
index 7577f00..b06d5b1 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -263,6 +263,8 @@
C API
-----
+- Issue #23998: PyImport_ReInitLock() now checks for lock allocation error
+
- Issue #22079: PyType_Ready() now checks that statically allocated type has
no dynamically allocated bases.
diff --git a/Python/import.c b/Python/import.c
index 92363b3..e47ce63 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -337,8 +337,12 @@
void
_PyImport_ReInitLock(void)
{
- if (import_lock != NULL)
+ if (import_lock != NULL) {
import_lock = PyThread_allocate_lock();
+ if (import_lock == NULL) {
+ Py_FatalError("PyImport_ReInitLock failed to create a new lock");
+ }
+ }
import_lock_thread = -1;
import_lock_level = 0;
}