aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2020-12-13 16:36:28 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2020-12-13 16:36:28 +0100
commit31df5a3eee74862312bbf89449d223aeae13aaf7 (patch)
tree199b8a43006378db47ea8412c5207b5e03986473 /shell
parent6c5f4296dca1d836695d3ec77e7429bd40ca5ce3 (diff)
downloadbusybox-w32-31df5a3eee74862312bbf89449d223aeae13aaf7.tar.gz
busybox-w32-31df5a3eee74862312bbf89449d223aeae13aaf7.tar.bz2
busybox-w32-31df5a3eee74862312bbf89449d223aeae13aaf7.zip
ash: reset SIGHUP earlier: allows HUP traps in .profile, closes 13371
function old new delta ash_main 1188 1203 +15 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/shell/ash.c b/shell/ash.c
index 40695dee0..b271dd031 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -14340,6 +14340,17 @@ procargs(char **argv)
14340 shellparam.nparam++; 14340 shellparam.nparam++;
14341 xargv++; 14341 xargv++;
14342 } 14342 }
14343
14344 /* Interactive bash re-enables SIGHUP which is SIG_IGNed on entry.
14345 * Try:
14346 * trap '' hup; bash; echo RET # type "kill -hup $$", see SIGHUP having effect
14347 * trap '' hup; bash -c 'kill -hup $$; echo ALIVE' # here SIGHUP is SIG_IGNed
14348 * NB: must do it before setting up signals (in optschanged())
14349 * and reading .profile etc (after we return from here):
14350 */
14351 if (iflag)
14352 signal(SIGHUP, SIG_DFL);
14353
14343 optschanged(); 14354 optschanged();
14344 14355
14345 return login_sh; 14356 return login_sh;
@@ -14510,14 +14521,6 @@ int ash_main(int argc UNUSED_PARAM, char **argv)
14510 } 14521 }
14511#endif 14522#endif
14512 state4: /* XXX ??? - why isn't this before the "if" statement */ 14523 state4: /* XXX ??? - why isn't this before the "if" statement */
14513
14514 /* Interactive bash re-enables SIGHUP which is SIG_IGNed on entry.
14515 * Try:
14516 * trap '' hup; bash; echo RET # type "kill -hup $$", see SIGHUP having effect
14517 * trap '' hup; bash -c 'kill -hup $$; echo ALIVE' # here SIGHUP is SIG_IGNed
14518 */
14519 signal(SIGHUP, SIG_DFL);
14520
14521 cmdloop(1); 14524 cmdloop(1);
14522 } 14525 }
14523#if PROFILE 14526#if PROFILE