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

This commit is contained in:
Antoine Pitrou 2013-05-04 23:21:09 +02:00
commit 52c5f85cf9
2 changed files with 14 additions and 3 deletions

View File

@ -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.

View File

@ -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)
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,