1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
# DP: bash43-007 upstream patch
Bash-Release: 4.3
Patch-ID: bash43-007
Bug-Reported-by: geir.hauge@gmail.com
Bug-Reference-ID: <20140318093650.B181C1C5B0B@gina.itea.ntnu.no>
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00095.html
Bug-Description:
Using compound assignments for associative arrays like
assoc=( [x]= [y]=bar )
left the value corresponding to the key `x' NULL. This caused subsequent
lookups to interpret it as unset.
Patch (apply with `patch -p0'):
Index: b/arrayfunc.c
===================================================================
--- a/arrayfunc.c
+++ b/arrayfunc.c
@@ -597,6 +597,11 @@
if (assoc_p (var))
{
val = expand_assignment_string_to_string (val, 0);
+ if (val == 0)
+ {
+ val = (char *)xmalloc (1);
+ val[0] = '\0'; /* like do_assignment_internal */
+ }
free_val = 1;
}
Index: b/patchlevel.h
===================================================================
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -25,6 +25,6 @@
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
looks for to find the patch level (for the sccs version string). */
-#define PATCHLEVEL 6
+#define PATCHLEVEL 7
#endif /* _PATCHLEVEL_H_ */
|