Commit 52c5f85c authored by Antoine Pitrou's avatar Antoine Pitrou

Issue #14173: Avoid crashing when reading a signal handler during interpreter shutdown.

parents df6931db c8c952ce
...@@ -69,6 +69,9 @@ Core and Builtins ...@@ -69,6 +69,9 @@ Core and Builtins
Library Library
------- -------
- Issue #14173: Avoid crashing when reading a signal handler during
interpreter shutdown.
- Issue #15902: Fix imp.load_module() accepting None as a file when loading an - Issue #15902: Fix imp.load_module() accepting None as a file when loading an
extension module. extension module.
......
...@@ -339,7 +339,10 @@ signal_signal(PyObject *self, PyObject *args) ...@@ -339,7 +339,10 @@ signal_signal(PyObject *self, PyObject *args)
Handlers[sig_num].tripped = 0; Handlers[sig_num].tripped = 0;
Py_INCREF(obj); Py_INCREF(obj);
Handlers[sig_num].func = obj; Handlers[sig_num].func = obj;
return old_handler; if (old_handler != NULL)
return old_handler;
else
Py_RETURN_NONE;
} }
PyDoc_STRVAR(signal_doc, PyDoc_STRVAR(signal_doc,
...@@ -367,8 +370,13 @@ signal_getsignal(PyObject *self, PyObject *args) ...@@ -367,8 +370,13 @@ signal_getsignal(PyObject *self, PyObject *args)
return NULL; return NULL;
} }
old_handler = Handlers[sig_num].func; old_handler = Handlers[sig_num].func;
Py_INCREF(old_handler); if (old_handler != NULL) {
return old_handler; Py_INCREF(old_handler);
return old_handler;
}
else {
Py_RETURN_NONE;
}
} }
PyDoc_STRVAR(getsignal_doc, PyDoc_STRVAR(getsignal_doc,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment