summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2015-04-19 19:08:28 (GMT)
committerChristian Heimes <christian@python.org>2015-04-19 19:08:28 (GMT)
commit3ce7873fddef05ecd6c5da2d5bd40206fee3805c (patch)
tree4e283cf18b23cef0ab658b6535659284fa00f342
parent1b4aa45441bccb350887add4cbef4fd73680eef0 (diff)
downloadcpython-3ce7873fddef05ecd6c5da2d5bd40206fee3805c.zip
cpython-3ce7873fddef05ecd6c5da2d5bd40206fee3805c.tar.gz
cpython-3ce7873fddef05ecd6c5da2d5bd40206fee3805c.tar.bz2
Issue #23998: PyImport_ReInitLock() now checks for lock allocation error
-rw-r--r--Misc/NEWS2
-rw-r--r--Python/import.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 7577f00..b06d5b1 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -263,6 +263,8 @@ Build
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 @@ _PyImport_ReleaseLock(void)
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;
}