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>
This commit is contained in:
parent
6c5f4296dc
commit
31df5a3eee
19
shell/ash.c
19
shell/ash.c
@ -14340,6 +14340,17 @@ procargs(char **argv)
|
|||||||
shellparam.nparam++;
|
shellparam.nparam++;
|
||||||
xargv++;
|
xargv++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Interactive bash re-enables SIGHUP which is SIG_IGNed on entry.
|
||||||
|
* Try:
|
||||||
|
* trap '' hup; bash; echo RET # type "kill -hup $$", see SIGHUP having effect
|
||||||
|
* trap '' hup; bash -c 'kill -hup $$; echo ALIVE' # here SIGHUP is SIG_IGNed
|
||||||
|
* NB: must do it before setting up signals (in optschanged())
|
||||||
|
* and reading .profile etc (after we return from here):
|
||||||
|
*/
|
||||||
|
if (iflag)
|
||||||
|
signal(SIGHUP, SIG_DFL);
|
||||||
|
|
||||||
optschanged();
|
optschanged();
|
||||||
|
|
||||||
return login_sh;
|
return login_sh;
|
||||||
@ -14510,14 +14521,6 @@ int ash_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
state4: /* XXX ??? - why isn't this before the "if" statement */
|
state4: /* XXX ??? - why isn't this before the "if" statement */
|
||||||
|
|
||||||
/* Interactive bash re-enables SIGHUP which is SIG_IGNed on entry.
|
|
||||||
* Try:
|
|
||||||
* trap '' hup; bash; echo RET # type "kill -hup $$", see SIGHUP having effect
|
|
||||||
* trap '' hup; bash -c 'kill -hup $$; echo ALIVE' # here SIGHUP is SIG_IGNed
|
|
||||||
*/
|
|
||||||
signal(SIGHUP, SIG_DFL);
|
|
||||||
|
|
||||||
cmdloop(1);
|
cmdloop(1);
|
||||||
}
|
}
|
||||||
#if PROFILE
|
#if PROFILE
|
||||||
|
Loading…
Reference in New Issue
Block a user