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);

Reply via email to