summaryrefslogtreecommitdiff
path: root/debian/patches/bash32-033.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/bash32-033.dpatch')
-rw-r--r--debian/patches/bash32-033.dpatch107
1 files changed, 107 insertions, 0 deletions
diff --git a/debian/patches/bash32-033.dpatch b/debian/patches/bash32-033.dpatch
new file mode 100644
index 0000000..c83806e
--- /dev/null
+++ b/debian/patches/bash32-033.dpatch
@@ -0,0 +1,107 @@
+#! /bin/sh -e
+
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;;
+ -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+# DP: bash-3.2 upstream patch bash32-033
+
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-033
+
+Bug-Reported-by: Christophe Martin <schplurtz@free.fr>
+Bug-Reference-ID: <465ABA4A.3030805@free.fr>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00104.html
+
+Bug-Description:
+
+References made within a function to an uninitialized local array variable
+using the [*] subscript in a double-quoted string can result in spurious
+ASCII 127 characters in the expanded value.
+
+Patch:
+
+*** ../bash-3.2-patched/arrayfunc.c 2007-08-25 13:47:05.000000000 -0400
+--- arrayfunc.c 2007-05-31 11:55:46.000000000 -0400
+***************
+*** 723,727 ****
+ {
+ if (rtype)
+! *rtype = 1;
+ if (allow_all == 0)
+ {
+--- 723,727 ----
+ {
+ if (rtype)
+! *rtype = (t[0] == '*') ? 1 : 2;
+ if (allow_all == 0)
+ {
+*** ../bash-3.2-patched/subst.c 2007-08-25 13:47:08.000000000 -0400
+--- subst.c 2007-11-14 15:43:00.000000000 -0500
+***************
+*** 4908,4915 ****
+ intmax_t arg_index;
+ SHELL_VAR *var;
+! int atype;
+
+ ret = 0;
+ temp = 0;
+
+ /* Handle multiple digit arguments, as in ${11}. */
+--- 4973,4981 ----
+ intmax_t arg_index;
+ SHELL_VAR *var;
+! int atype, rflags;
+
+ ret = 0;
+ temp = 0;
++ rflags = 0;
+
+ /* Handle multiple digit arguments, as in ${11}. */
+***************
+*** 4944,4947 ****
+--- 5010,5015 ----
+ ? quote_string (temp)
+ : quote_escapes (temp);
++ else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
++ rflags |= W_HASQUOTEDNULL;
+ }
+ #endif
+***************
+*** 4971,4974 ****
+--- 5039,5043 ----
+ ret = alloc_word_desc ();
+ ret->word = temp;
++ ret->flags |= rflags;
+ }
+ return ret;
+*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
+--- patchlevel.h Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 32
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 33
+
+ #endif /* _PATCHLEVEL_H_ */
+