From: Ian Wienand Date: Sat, 16 Apr 2011 18:05:14 +0000 (+0200) Subject: ash: clear sa_flags always X-Git-Tag: 1_19_0~170 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=89b3cbaa97d715ac27e9558ea73a1221925f589b;p=oweals%2Fbusybox.git ash: clear sa_flags always Signed-off-by: Ian Wienand Signed-off-by: Denys Vlasenko --- 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;