mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-27 23:53:18 +02:00
Bash-5.3 patch 12: fix subshells inappropriately running the EXIT trap if they receive a fatal signal before resetting traps
This commit is contained in:
+2
-2
@@ -1643,13 +1643,13 @@ execute_in_subshell (COMMAND *command, int asynchronous, int pipe_in, int pipe_o
|
||||
|
||||
if (user_subshell)
|
||||
{
|
||||
subshell_environment = SUBSHELL_PAREN; /* XXX */
|
||||
subshell_environment = SUBSHELL_PAREN|SUBSHELL_IGNTRAP; /* XXX */
|
||||
if (asynchronous)
|
||||
subshell_environment |= SUBSHELL_ASYNC;
|
||||
}
|
||||
else
|
||||
{
|
||||
subshell_environment = 0; /* XXX */
|
||||
subshell_environment = SUBSHELL_IGNTRAP; /* XXX */
|
||||
if (asynchronous)
|
||||
subshell_environment |= SUBSHELL_ASYNC;
|
||||
if (pipe_in != NO_PIPE || pipe_out != NO_PIPE)
|
||||
|
||||
+1
-1
@@ -25,6 +25,6 @@
|
||||
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
#define PATCHLEVEL 11
|
||||
#define PATCHLEVEL 12
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
|
||||
@@ -638,7 +638,10 @@ termsig_handler (int sig)
|
||||
interrupt_execution = retain_fifos = executing_funsub = 0;
|
||||
comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
|
||||
|
||||
run_exit_trap (); /* XXX - run exit trap possibly in signal context? */
|
||||
/* Don't run the exit trap if we're supposed to be ignoring traps in a
|
||||
subshell environment. */
|
||||
if ((subshell_environment & SUBSHELL_IGNTRAP) == 0)
|
||||
run_exit_trap (); /* XXX - run exit trap possibly in signal context? */
|
||||
|
||||
kill_shell (sig);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user