buildroot/package/bash/bash31-017
2006-04-15 02:26:01 +00:00

132 lines
3.6 KiB
Plaintext

BASH PATCH REPORT
=================
Bash-Release: 3.1
Patch-ID: bash31-017
Bug-Reported-by: syphir@syphir.sytes.net
Bug-Reference-ID: <442421F5.3010105@syphir.sytes.net>
Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=358831
Bug-Description:
Array expansion fails with an arithmetic syntax error when the subscript
appears within double quotes. For example: ${a["4"]}.
Patch:
*** bash-3.1/subst.c Wed Apr 12 08:47:08 2006
--- bash-3.1/subst.c Wed Apr 12 08:49:02 2006
***************
*** 2576,2579 ****
--- 2576,2586 ----
}
+ char *
+ expand_arith_string (string, quoted)
+ char *string;
+ {
+ return (expand_string_if_necessary (string, quoted, expand_string));
+ }
+
#if defined (COND_COMMAND)
/* Just remove backslashes in STRING. Returns a new string. */
***************
*** 5249,5253 ****
t = (char *)0;
! temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string);
*e1p = evalexp (temp1, &expok);
free (temp1);
--- 5256,5260 ----
t = (char *)0;
! temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES);
*e1p = evalexp (temp1, &expok);
free (temp1);
***************
*** 5294,5298 ****
t++;
temp2 = savestring (t);
! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
free (temp2);
t[-1] = ':';
--- 5301,5305 ----
t++;
temp2 = savestring (t);
! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
free (temp2);
t[-1] = ':';
***************
*** 6436,6440 ****
/* Expand variables found inside the expression. */
! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
free (temp2);
--- 6443,6447 ----
/* Expand variables found inside the expression. */
! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
free (temp2);
***************
*** 6478,6482 ****
/* Do initial variable expansion. */
! temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string);
goto arithsub;
--- 6485,6489 ----
/* Do initial variable expansion. */
! temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES);
goto arithsub;
*** bash-3.1/subst.h Sun Nov 7 15:12:28 2004
--- bash-3.1/subst.h Mon Mar 27 09:10:38 2006
***************
*** 152,155 ****
--- 152,158 ----
extern char *expand_assignment_string_to_string __P((char *, int));
+ /* Expand an arithmetic expression string */
+ extern char *expand_arith_string __P((char *, int));
+
/* De-quoted quoted characters in STRING. */
extern char *dequote_string __P((char *));
*** bash-3.1/arrayfunc.c Mon Jul 4 20:25:58 2005
--- bash-3.1/arrayfunc.c Mon Mar 27 09:10:47 2006
***************
*** 593,601 ****
strncpy (exp, s, len - 1);
exp[len - 1] = '\0';
! #if 0
! t = expand_string_to_string (exp, 0);
! #else
! t = expand_string_to_string (exp, Q_DOUBLE_QUOTES);
! #endif
this_command_name = (char *)NULL;
val = evalexp (t, &expok);
--- 591,595 ----
strncpy (exp, s, len - 1);
exp[len - 1] = '\0';
! t = expand_arith_string (exp, 0);
this_command_name = (char *)NULL;
val = evalexp (t, &expok);
*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 16
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 17
#endif /* _PATCHLEVEL_H_ */