]> granicus.if.org Git - python/commitdiff
faulthandler: fix unregister() if it is called before register()
authorVictor Stinner <victor.stinner@haypocalc.com>
Fri, 8 Apr 2011 10:48:15 +0000 (12:48 +0200)
committerVictor Stinner <victor.stinner@haypocalc.com>
Fri, 8 Apr 2011 10:48:15 +0000 (12:48 +0200)
Fix a crash: don't read from NULL.

Doc/library/faulthandler.rst
Modules/faulthandler.c

index 106da45b4ce2cd85f76dfd017e738fbca9f74ed7..c0b662502f484b80add55a30f89d9934231109d7 100644 (file)
@@ -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.
 
index 76cadf382c541ca92e2257f9a57bbb673e671070..113203692cc663413cf512b91b38a09d55be5b96 100644 (file)
@@ -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);