From: Bruno Haible Date: Thu, 16 Apr 2026 12:14:38 +0000 (+0200) Subject: sigdelay, posix-spawn-internal: Ignore out-of-range signal numbers. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9bb54c2fe5d2ffe5fc44085f32e7d2cde31c18f8;p=thirdparty%2Fgnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index 67e90f524b..55f69d5198 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2026-04-16 Bruno Haible + + 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 sigprocmask: Fix sigismember function. diff --git a/lib/sigdelay.c b/lib/sigdelay.c index d69fa6126b..ea0292ff90 100644 --- a/lib/sigdelay.c +++ b/lib/sigdelay.c @@ -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) { diff --git a/lib/spawni.c b/lib/spawni.c index 9e34e95c11..2ed0c69652 100644 --- a/lib/spawni.c +++ b/lib/spawni.c @@ -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);