]> git.ipfire.org Git - thirdparty/gnulib.git/commitdiff
sigdelay, posix-spawn-internal: Ignore out-of-range signal numbers.
authorBruno Haible <bruno@clisp.org>
Thu, 16 Apr 2026 12:14:38 +0000 (14:14 +0200)
committerBruno Haible <bruno@clisp.org>
Thu, 16 Apr 2026 12:14:38 +0000 (14:14 +0200)
* lib/sigdelay.c (sigdelay): Do nothing when sigismember() returns -1.
* lib/spawni.c (__spawni): Likewise.

ChangeLog
lib/sigdelay.c
lib/spawni.c

index 67e90f524b7f42f163a72388ae225c0e8c14991d..55f69d51983e88a4977b08f995f5adb131aafde3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-04-16  Bruno Haible  <bruno@clisp.org>
+
+       sigdelay, posix-spawn-internal: Ignore out-of-range signal numbers.
+       * lib/sigdelay.c (sigdelay): Do nothing when sigismember() returns -1.
+       * lib/spawni.c (__spawni): Likewise.
+
 2026-04-16  Bruno Haible  <bruno@clisp.org>
 
        sigprocmask: Fix sigismember function.
index d69fa6126b8e8ed1b79b5911496880d6f089a123..ea0292ff90c96b6ea6a2883e79db9329ca2b02cf 100644 (file)
@@ -76,7 +76,7 @@ sigdelay (int how, const sigset_t *restrict set, sigset_t *restrict old_set)
         sigaddset (old_set, sig);
 
   for (int sig = 1; sig < countof (states); sig++)
-    if (sigismember (set, sig))
+    if (sigismember (set, sig) > 0)
       {
         switch (how)
           {
index 9e34e95c112035b76abed72e8e82761cbd4f3134..2ed0c69652e85e1aed246942a7d75d0adcd1272b 100644 (file)
@@ -956,7 +956,7 @@ __spawni (pid_t *pid, const char *file,
       sa.sa_handler = SIG_DFL;
 
       for (int sig = 1; sig < NSIG; ++sig)
-        if (sigismember (&attrp->_sd, sig) != 0
+        if (sigismember (&attrp->_sd, sig) > 0
             && sigaction (sig, &sa, NULL) != 0)
           _exit (SPAWN_ERROR);