12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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
- --- bash-3.2/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
- --- bash-3.2/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
- --- bash-3.2/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_ */
|