sigwait() forgets to check if a pending signal is also one of the signals the caller wants.
2001-12-26 Jeroen Dekkers <[EMAIL PROTECTED]>
* sysdeps/mach/hurd/sigwait.c (__sigwait): Check if the
pending signal is also in MASK before returning.
Index: sysdeps/mach/hurd/sigwait.c
===================================================================
RCS file: /cvs/glibc/sysdeps/mach/hurd/sigwait.c,v
retrieving revision 1.4
diff -u -p -r1.4 sigwait.c
--- sysdeps/mach/hurd/sigwait.c 6 Jul 2001 04:55:57 -0000 1.4
+++ sysdeps/mach/hurd/sigwait.c 26 Dec 2001 15:44:28 -0000
@@ -76,7 +76,8 @@ __sigwait (const sigset_t *set, int *sig
if (ss->pending & mask)
{
for (signo = 1; signo < NSIG; signo++)
- if (__sigismember (&ss->pending, signo))
+ if (__sigismember (&ss->pending, signo)
+ && __sigismember (&mask, signo))
{
__sigdelset (&ss->pending, signo);
goto all_done;
--
Jabber supporter - http://www.jabber.org Jabber ID: [EMAIL PROTECTED]
Debian GNU supporter - http://www.debian.org http://www.gnu.org
IRC: [EMAIL PROTECTED]
msg02484/pgp00000.pgp
Description: PGP signature
