Issue #11393: Fix faulthandler.disable() and add a test
diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c
index abff79e..2e3a5b8 100644
--- a/Modules/faulthandler.c
+++ b/Modules/faulthandler.c
@@ -628,7 +628,7 @@
 static int
 faulthandler_unregister(user_signal_t *user, int signum)
 {
-    if (user->enabled)
+    if (!user->enabled)
         return 0;
     user->enabled = 0;
 #ifdef HAVE_SIGACTION
@@ -976,7 +976,7 @@
 void _PyFaulthandler_Fini(void)
 {
 #ifdef FAULTHANDLER_USER
-    unsigned int i;
+    unsigned int signum;
 #endif
 
 #ifdef FAULTHANDLER_LATER
@@ -995,8 +995,8 @@
 #ifdef FAULTHANDLER_USER
     /* user */
     if (user_signals != NULL) {
-        for (i=0; i < NSIG; i++)
-            faulthandler_unregister(&user_signals[i], i+1);
+        for (signum=0; signum < NSIG; signum++)
+            faulthandler_unregister(&user_signals[signum], signum);
         free(user_signals);
         user_signals = NULL;
     }