|
1 BASH PATCH REPORT |
|
2 ================= |
|
3 |
|
4 Bash-Release: 4.3 |
|
5 Patch-ID: bash43-024 |
|
6 |
|
7 Bug-Reported-by: Corentin Peuvrel <[email protected]> |
|
8 Bug-Reference-ID: <[email protected]> |
|
9 Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-07/msg00021.html |
|
10 |
|
11 Bug-Description: |
|
12 |
|
13 Indirect variable references do not work correctly if the reference |
|
14 variable expands to an array reference using a subscript other than 0 |
|
15 (e.g., foo='bar[1]' ; echo ${!foo}). |
|
16 |
|
17 Patch (apply with `patch -p0'): |
|
18 |
|
19 *** ../bash-4.3-patched/subst.c 2014-06-03 09:32:44.000000000 -0400 |
|
20 --- subst.c 2014-07-23 09:58:19.000000000 -0400 |
|
21 *************** |
|
22 *** 7375,7379 **** |
|
23 |
|
24 if (want_indir) |
|
25 ! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); |
|
26 else |
|
27 tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); |
|
28 --- 7445,7455 ---- |
|
29 |
|
30 if (want_indir) |
|
31 ! { |
|
32 ! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); |
|
33 ! /* Turn off the W_ARRAYIND flag because there is no way for this function |
|
34 ! to return the index we're supposed to be using. */ |
|
35 ! if (tdesc && tdesc->flags) |
|
36 ! tdesc->flags &= ~W_ARRAYIND; |
|
37 ! } |
|
38 else |
|
39 tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); |
|
40 *** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 |
|
41 --- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 |
|
42 *************** |
|
43 *** 26,30 **** |
|
44 looks for to find the patch level (for the sccs version string). */ |
|
45 |
|
46 ! #define PATCHLEVEL 23 |
|
47 |
|
48 #endif /* _PATCHLEVEL_H_ */ |
|
49 --- 26,30 ---- |
|
50 looks for to find the patch level (for the sccs version string). */ |
|
51 |
|
52 ! #define PATCHLEVEL 24 |
|
53 |
|
54 #endif /* _PATCHLEVEL_H_ */ |