diff options
author | Brett Cannon <brett@python.org> | 2013-05-04 17:29:36 -0400 |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2013-05-04 17:29:36 -0400 |
commit | 4f9b4343ed07bd6908cf7d679fa1d50484831294 (patch) | |
tree | 72d8d8dc1653ed12ca7f6b1f1df3ca864eef1548 | |
parent | 9c1334ef7de0688d71e01ab2d6a6ff60bb12ae87 (diff) | |
parent | 52c5f85cf9e591b3c6f8729f58e0807d88f43792 (diff) | |
download | cpython-git-4f9b4343ed07bd6908cf7d679fa1d50484831294.tar.gz |
merge
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/signalmodule.c | 14 |
2 files changed, 14 insertions, 3 deletions
@@ -69,6 +69,9 @@ Core and Builtins 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 extension module. diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index dd55c10b90..122530beed 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -339,7 +339,10 @@ signal_signal(PyObject *self, PyObject *args) Handlers[sig_num].tripped = 0; Py_INCREF(obj); Handlers[sig_num].func = obj; - return old_handler; + if (old_handler != NULL) + return old_handler; + else + Py_RETURN_NONE; } PyDoc_STRVAR(signal_doc, @@ -367,8 +370,13 @@ signal_getsignal(PyObject *self, PyObject *args) return NULL; } old_handler = Handlers[sig_num].func; - Py_INCREF(old_handler); - return old_handler; + if (old_handler != NULL) { + Py_INCREF(old_handler); + return old_handler; + } + else { + Py_RETURN_NONE; + } } PyDoc_STRVAR(getsignal_doc, |