summaryrefslogtreecommitdiff
path: root/debian/patches/bash43-002.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/bash43-002.diff')
-rw-r--r--debian/patches/bash43-002.diff52
1 files changed, 52 insertions, 0 deletions
diff --git a/debian/patches/bash43-002.diff b/debian/patches/bash43-002.diff
new file mode 100644
index 0000000..093dd6d
--- /dev/null
+++ b/debian/patches/bash43-002.diff
@@ -0,0 +1,52 @@
+# DP: bash43-002 upstream patch
+
+Bash-Release: 4.3
+Patch-ID: bash43-002
+
+Bug-Reported-by: Moe Tunes <moetunes42@gmail.com>
+Bug-Reference-ID: <53103F49.3070100@gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00086.html
+
+Bug-Description:
+
+A change to save state while running the DEBUG trap caused pipelines to hang
+on systems which need process group synchronization while building pipelines.
+
+Patch (apply with `patch -p0'):
+
+Index: b/trap.c
+===================================================================
+--- a/trap.c
++++ b/trap.c
+@@ -920,7 +920,8 @@
+ subst_assign_varlist = 0;
+
+ #if defined (JOB_CONTROL)
+- save_pipeline (1); /* XXX only provides one save level */
++ if (sig != DEBUG_TRAP) /* run_debug_trap does this */
++ save_pipeline (1); /* XXX only provides one save level */
+ #endif
+
+ /* If we're in a function, make sure return longjmps come here, too. */
+@@ -940,7 +941,8 @@
+ trap_exit_value = last_command_exit_value;
+
+ #if defined (JOB_CONTROL)
+- restore_pipeline (1);
++ if (sig != DEBUG_TRAP) /* run_debug_trap does this */
++ restore_pipeline (1);
+ #endif
+
+ subst_assign_varlist = save_subst_varlist;
+Index: b/patchlevel.h
+===================================================================
+--- a/patchlevel.h
++++ b/patchlevel.h
+@@ -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 1
++#define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */