From 89b3cbaa97d715ac27e9558ea73a1221925f589b Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Sat, 16 Apr 2011 20:05:14 +0200 Subject: ash: clear sa_flags always Signed-off-by: Ian Wienand Signed-off-by: Denys Vlasenko --- shell/ash.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/shell/ash.c b/shell/ash.c index 11ba9774a..b50e0952e 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -3491,13 +3491,18 @@ setsignal(int signo) switch (new_act) { case S_CATCH: act.sa_handler = signal_handler; - act.sa_flags = 0; /* matters only if !DFL and !IGN */ - sigfillset(&act.sa_mask); /* ditto */ break; case S_IGN: act.sa_handler = SIG_IGN; break; } + + /* flags and mask matter only if !DFL and !IGN, but we do it + * for all cases for more deterministic behavior: + */ + act.sa_flags = 0; + sigfillset(&act.sa_mask); + sigaction_set(signo, &act); *t = new_act; -- cgit v1.2.3