components/bash/patches/bash42-011.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Thu, 13 Dec 2012 15:52:21 -0800
changeset 1082 6d49548fa9da
permissions -rw-r--r--
15754923 SUNBT7111705 Upgrade bash to 4.2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1082
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
			     BASH PATCH REPORT
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
			     =================
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
Bash-Release:	4.2
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
Patch-ID:	bash42-011
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
Bug-Reported-by:	"David Parks" <[email protected]>
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
Bug-Reference-ID:	<014101cc82c6$46ac1540$d4043fc0$@com>
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-10/msg00031.html
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
Bug-Description:
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
Overwriting a value in an associative array causes the memory allocated to
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
store the key on the second and subsequent assignments to leak.
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
Patch (apply with `patch -p0'):
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
*** ../bash-4.2-patched/assoc.c	2009-08-05 20:19:40.000000000 -0400
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
--- assoc.c	2011-10-04 20:23:07.000000000 -0400
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
***************
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
*** 78,81 ****
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
--- 78,86 ----
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
    if (b == 0)
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
      return -1;
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
+   /* If we are overwriting an existing element's value, we're not going to
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
+      use the key.  Nothing in the array assignment code path frees the key
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
+      string, so we can free it here to avoid a memory leak. */
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
+   if (b->key != key)
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
+     free (key);
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
    FREE (b->data);
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
    b->data = value ? savestring (value) : (char *)0;
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
*** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
--- patchlevel.h	Thu Feb 24 21:41:34 2011
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    34
***************
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    35
*** 26,30 ****
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    36
     looks for to find the patch level (for the sccs version string). */
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    37
  
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    38
! #define PATCHLEVEL 10
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    39
  
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    40
  #endif /* _PATCHLEVEL_H_ */
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    41
--- 26,30 ----
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    42
     looks for to find the patch level (for the sccs version string). */
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    43
  
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    44
! #define PATCHLEVEL 11
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    45
  
6d49548fa9da 15754923 SUNBT7111705 Upgrade bash to 4.2
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    46
  #endif /* _PATCHLEVEL_H_ */