From: Victor Stinner Date: Fri, 8 Apr 2011 10:48:15 +0000 (+0200) Subject: faulthandler: fix unregister() if it is called before register() X-Git-Tag: v3.3.0a1~2644 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cfa7123ef108452dd402e3cdcec772be28872e2f;p=python faulthandler: fix unregister() if it is called before register() Fix a crash: don't read from NULL. --- diff --git a/Doc/library/faulthandler.rst b/Doc/library/faulthandler.rst index 106da45b4c..c0b662502f 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 76cadf382c..113203692c 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);