From cfa7123ef108452dd402e3cdcec772be28872e2f Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 8 Apr 2011 12:48:15 +0200 Subject: faulthandler: fix unregister() if it is called before register() Fix a crash: don't read from NULL. --- Doc/library/faulthandler.rst | 3 ++- Modules/faulthandler.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Doc/library/faulthandler.rst b/Doc/library/faulthandler.rst index 106da45..c0b6625 100644 --- a/Doc/library/faulthandler.rst +++ b/Doc/library/faulthandler.rst @@ -97,7 +97,8 @@ Dump the traceback on a user signal .. function:: unregister(signum) Unregister a user signal: uninstall the handler of the *signum* signal - installed by :func:`register`. + installed by :func:`register`. Return ``True`` if the signal was registered, + ``False`` otherwise. Not available on Windows. diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c index 76cadf3..1132036 100644 --- a/Modules/faulthandler.c +++ b/Modules/faulthandler.c @@ -694,6 +694,9 @@ faulthandler_unregister_py(PyObject *self, PyObject *args) if (!check_signum(signum)) return NULL; + if (user_signals == NULL) + Py_RETURN_FALSE; + user = &user_signals[signum]; change = faulthandler_unregister(user, signum); return PyBool_FromLong(change); -- cgit v0.12