From https://ftp.gnu.org/gnu/bash/bash-4.4-patches/bash44-023 Signed-off-by: Peter Korsgaard BASH PATCH REPORT ================= Bash-Release: 4.4 Patch-ID: bash44-023 Bug-Reported-by: Martijn Dekker Bug-Reference-ID: <5326d6b9-2625-1d32-3e6e-ad1d15462c09@inlv.org> Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-11/msg00041.html Bug-Description: When sourcing a file from an interactive shell, setting the SIGINT handler to the default and typing ^C will cause the shell to exit. Patch (apply with `patch -p0'): *** bash-4.4-patched/builtins/trap.def 2016-01-25 13:32:38.000000000 -0500 --- b/builtins/trap.def 2016-11-06 12:04:35.000000000 -0500 *************** *** 99,102 **** --- b/99,103 ---- extern int posixly_correct, subshell_environment; + extern int sourcelevel, running_trap; int *************** *** 213,216 **** --- b/214,220 ---- if (interactive) set_signal_handler (SIGINT, sigint_sighandler); + /* special cases for interactive == 0 */ + else if (interactive_shell && (sourcelevel||running_trap)) + set_signal_handler (SIGINT, sigint_sighandler); else set_signal_handler (SIGINT, termsig_sighandler); *** bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- b/patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 22 #endif /* _PATCHLEVEL_H_ */ --- b/26,30 ---- looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 23 #endif /* _PATCHLEVEL_H_ */