(_hurd_internal_post_signal): In pending signal check for signal zero, repair logical...
authorThomas Bushnell, BSG <thomas@gnu.org>
Fri, 28 Jun 1996 19:44:50 +0000 (19:44 +0000)
committerThomas Bushnell, BSG <thomas@gnu.org>
Fri, 28 Jun 1996 19:44:50 +0000 (19:44 +0000)
hurd/hurdsig.c

index 1ff6535..595cab6 100644 (file)
@@ -927,13 +927,13 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
          {
            __spin_lock (&ss->lock);
            for (signo = 1; signo < NSIG; ++signo)
-             if (__sigismember (&ss->pending, signo) &&
-                 !__sigismember (&ss->blocked, signo) ||
+             if (__sigismember (&ss->pending, signo)
+                 && (!__sigismember (&ss->blocked, signo)
                  /* We "deliver" immediately pending blocked signals whose
                      action might be to ignore, so that if ignored they are
                      dropped right away.  */
-                 ss->actions[signo].sa_handler == SIG_IGN ||
-                 ss->actions[signo].sa_handler == SIG_DFL)
+                     || ss->actions[signo].sa_handler == SIG_IGN
+                     || ss->actions[signo].sa_handler == SIG_DFL))
                goto deliver_pending;
            __spin_unlock (&ss->lock);
          }