diff options
Diffstat (limited to 'libc/signal/sigpause.c')
-rw-r--r-- | libc/signal/sigpause.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/libc/signal/sigpause.c b/libc/signal/sigpause.c index 96dd93368..152f9ca32 100644 --- a/libc/signal/sigpause.c +++ b/libc/signal/sigpause.c @@ -40,12 +40,10 @@ int __sigpause (int sig_or_mask, int is_sig) if (is_sig) { -//TODO: error check for sig_or_mask = BIGNUM? - /* The modern X/Open implementation is requested. */ - if (sigprocmask (0, NULL, &set) < 0 - /* Yes, we call `sigdelset' and not `__sigdelset'. */ - || sigdelset (&set, sig_or_mask) < 0) + sigprocmask (SIG_BLOCK, NULL, &set); + /* Bound-check sig_or_mask, remove it from the set. */ + if (sigdelset (&set, sig_or_mask) < 0) return -1; } else |