Fix potential endless loop in pending_signals::clear

* sigproc.cc (pending_signals::clear): Fix previous fix resulting in
	yet another endless loop.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2015-11-03 18:25:23 +01:00
parent 0a4019eed2
commit 0ed1523470
2 changed files with 9 additions and 9 deletions

View File

@ -1,3 +1,8 @@
2015-11-03 Corinna Vinschen <corinna@vinschen.de>
* sigproc.cc (pending_signals::clear): Fix previous fix resulting in
yet another endless loop.
2015-11-02 Corinna Vinschen <corinna@vinschen.de>
* include/netinet/ip.h (MAX_IPOPTLEN): Define.

View File

@ -402,16 +402,11 @@ sig_clear (int sig)
void
pending_signals::clear (_cygtls *tls)
{
sigpacket *q = &start, *qnext;
sigpacket *q, *qnext;
while ((qnext = q->next))
{
if (qnext->sigtls == tls)
{
q->next = qnext->next;
qnext->si.si_signo = 0;
}
}
for (q = &start; (qnext = q->next); q->next = qnext->next)
if (qnext->sigtls == tls)
qnext->si.si_signo = 0;
}
/* Clear pending signals of specific thread. Called from _cygtls::remove */