Messages in this thread Patch in this message | | | Date | Tue, 9 Aug 2005 14:04:31 -0700 | From | Chris Wright <> | Subject | Re: Signal handling possibly wrong |
| |
* Chris Wright (chrisw@osdl.org) wrote:
Actually that one broke a fix that I think Brodo discovered in the first place with bogus stack frames.
Should be this one.
thanks, -chris ---
Subject: [PATCH] fix SA_NODEFER signals to honor sa_mask
When receiving SA_NODEFER signal, kernel was inapproriately not applying the sa_mask. As pointed out by Brodo Stroesser.
Signed-off-by: Chris Wright <chrisw@osdl.org>
diff --git a/arch/i386/kernel/signal.c b/arch/i386/kernel/signal.c --- a/arch/i386/kernel/signal.c +++ b/arch/i386/kernel/signal.c @@ -577,10 +577,11 @@ handle_signal(unsigned long sig, siginfo else ret = setup_frame(sig, ka, oldset, regs); - if (ret && !(ka->sa.sa_flags & SA_NODEFER)) { + if (ret) { spin_lock_irq(¤t->sighand->siglock); sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); - sigaddset(¤t->blocked,sig); + if (!(ka->sa.sa_flags & SA_NODEFER)) + sigaddset(¤t->blocked,sig); recalc_sigpending(); spin_unlock_irq(¤t->sighand->siglock); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |