Hello community, here is the log from the commit of package bash for openSUSE:Factory checked in at 2018-04-22 14:35:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bash (Old) and /work/SRC/openSUSE:Factory/.bash.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bash" Sun Apr 22 14:35:33 2018 rev:146 rq:598555 version:4.4 Changes: -------- --- /work/SRC/openSUSE:Factory/bash/bash.changes 2018-03-22 11:52:38.308523301 +0100 +++ /work/SRC/openSUSE:Factory/.bash.new/bash.changes 2018-04-22 14:35:35.117770563 +0200 @@ -1,0 +2,7 @@ +Wed Apr 18 10:49:26 UTC 2018 - [email protected] + +- Add patch bash-4.4-wait-sigint-handler.patch to fix bug bsc#1086247 + that is repeating self inserting trap due external command in the + trap. + +------------------------------------------------------------------- New: ---- bash-4.4-wait-sigint-handler.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bash.spec ++++++ --- /var/tmp/diff_new_pack.URzIcZ/_old 2018-04-22 14:35:36.045736981 +0200 +++ /var/tmp/diff_new_pack.URzIcZ/_new 2018-04-22 14:35:36.049736836 +0200 @@ -85,6 +85,8 @@ Patch48: bash-4.3-extra-import-func.patch # PATCH-EXTEND-SUSE Allow root to clean file system if filled up Patch49: bash-4.3-pathtemp.patch +# PATCH-FIX-UPSTREAM bnc#1086247 +Patch50: bash-4.4-wait-sigint-handler.patch %global _sysconfdir /etc %global _incdir %{_includedir} %global _ldldir /%{_lib}/bash @@ -226,6 +228,7 @@ %patch48 -b .eif %endif %patch49 -p0 -b .pthtmp +%patch50 -p0 -b .trap %patch0 -p0 -b .0 # This has to be always the same version as included in the bash its self rl1=($(sed -rn '/RL_READLINE_VERSION/p' lib/readline/readline.h)) ++++++ bash-4.4-wait-sigint-handler.patch ++++++ Repeating self-calling of traps due the combination of a non-interactive shell, a trap handler for SIGINT, an external process in the trap handler, and a SIGINT within the trap after the external process runs. --- jobs.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) --- jobs.c +++ jobs.c 2018-04-02 18:24:21.000000000 +0000 @@ -2662,7 +2662,17 @@ wait_for (pid) wait_sigint_received = child_caught_sigint = 0; if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB)) { - old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); + SigHandler *temp_sigint_handler; + + temp_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); + if (temp_sigint_handler == wait_sigint_handler) + { +#if defined (DEBUG) + internal_warning ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap); +#endif + } + else + old_sigint_handler = temp_sigint_handler; waiting_for_child = 0; if (old_sigint_handler == SIG_IGN) set_signal_handler (SIGINT, old_sigint_handler);
