~doko/+junk/pkg-bash-debian

« back to all changes in this revision

Viewing changes to patches/bash43-024.diff

  • Committer: Matthias Klose
  • Date: 2015-01-29 23:36:31 UTC
  • Revision ID: doko@18xx.org-20150129233631-3k2rxji5gnrc47vh
4.3 updates up to 4.3-12

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# DP: bash43-024 upstream patch
 
2
 
 
3
                             BASH PATCH REPORT
 
4
                             =================
 
5
 
 
6
Bash-Release:   4.3
 
7
Patch-ID:       bash43-024
 
8
 
 
9
Bug-Reported-by:        Corentin Peuvrel <cpeuvrel@pom-monitoring.com>
 
10
Bug-Reference-ID:       <53CE9E5D.6050203@pom-monitoring.com>
 
11
Bug-Reference-URL:      http://lists.gnu.org/archive/html/bug-bash/2014-07/msg00021.html
 
12
 
 
13
Bug-Description:
 
14
 
 
15
Indirect variable references do not work correctly if the reference
 
16
variable expands to an array reference using a subscript other than 0
 
17
(e.g., foo='bar[1]' ; echo ${!foo}).
 
18
 
 
19
Patch (apply with `patch -p0'):
 
20
 
 
21
Index: b/subst.c
 
22
===================================================================
 
23
--- a/subst.c
 
24
+++ b/subst.c
 
25
@@ -7374,7 +7374,13 @@ parameter_brace_expand (string, indexp,
 
26
     }
 
27
 
 
28
   if (want_indir)
 
29
-    tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
 
30
+    {
 
31
+      tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
 
32
+      /* Turn off the W_ARRAYIND flag because there is no way for this function
 
33
+        to return the index we're supposed to be using. */
 
34
+      if (tdesc && tdesc->flags)
 
35
+       tdesc->flags &= ~W_ARRAYIND;
 
36
+    }
 
37
   else
 
38
     tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind);
 
39
 
 
40
Index: b/patchlevel.h
 
41
===================================================================
 
42
--- a/patchlevel.h
 
43
+++ b/patchlevel.h
 
44
@@ -25,6 +25,6 @@
 
45
    regexp `^#define[   ]*PATCHLEVEL', since that's what support/mkversion.sh
 
46
    looks for to find the patch level (for the sccs version string). */
 
47
 
 
48
-#define PATCHLEVEL 23
 
49
+#define PATCHLEVEL 24
 
50
 
 
51
 #endif /* _PATCHLEVEL_H_ */