components/bash/patches/bash42-044.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Fri, 19 Apr 2013 10:32:55 -0700
changeset 1275 03b86a2f9021
permissions -rw-r--r--
16522397 bash in S12 should be 64-bit 16522422 flex in S12 should be 64-bit 16531734 subversion in S12 should be 64-bit 16522480 bash flex and subversion should have ASLR enabled
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1275
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
			     BASH PATCH REPORT
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
			     =================
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
Bash-Release:	4.2
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
Patch-ID:	bash42-044
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
Bug-Reported-by:	"Dashing" <[email protected]>
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
Bug-Reference-ID:	<[email protected]>
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2013-02/msg00030.html
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
Bug-Description:
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
When converting a multibyte string to a wide character string as part of
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
pattern matching, bash does not handle the end of the string correctly,
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
causing the search for the NUL to go beyond the end of the string and
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
reference random memory.  Depending on the contents of that memory, bash
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
can produce errors or crash. 
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
Patch (apply with `patch -p0'):
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
*** ../bash-4.2-patched/lib/glob/xmbsrtowcs.c	2012-07-08 21:53:19.000000000 -0400
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
--- lib/glob/xmbsrtowcs.c	2013-02-12 12:00:39.000000000 -0500
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
***************
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
*** 217,220 ****
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
--- 217,226 ----
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
        n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
  
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
+       if (n == 0 && p == 0)
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
+ 	{
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
+ 	  wsbuf[wcnum] = L'\0';
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
+ 	  break;
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
+ 	}
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
+ 
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    34
        /* Compensate for taking single byte on wcs conversion failure above. */
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    35
        if (wcslength == 1 && (n == 0 || n == (size_t)-1))
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    36
***************
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    37
*** 222,226 ****
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    38
  	  state = tmp_state;
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    39
  	  p = tmp_p;
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    40
! 	  wsbuf[wcnum++] = *p++;
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    41
  	}
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    42
        else
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    43
--- 228,238 ----
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    44
  	  state = tmp_state;
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    45
  	  p = tmp_p;
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    46
! 	  wsbuf[wcnum] = *p;
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    47
! 	  if (*p == 0)
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    48
! 	    break;
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    49
! 	  else
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    50
! 	    {
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    51
! 	      wcnum++; p++;
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    52
! 	    }
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    53
  	}
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    54
        else
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    55
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    56
*** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    57
--- patchlevel.h	Thu Feb 24 21:41:34 2011
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    58
***************
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    59
*** 26,30 ****
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    60
     looks for to find the patch level (for the sccs version string). */
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    61
  
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    62
! #define PATCHLEVEL 43
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    63
  
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    64
  #endif /* _PATCHLEVEL_H_ */
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    65
--- 26,30 ----
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    66
     looks for to find the patch level (for the sccs version string). */
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    67
  
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    68
! #define PATCHLEVEL 44
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    69
  
03b86a2f9021 16522397 bash in S12 should be 64-bit
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    70
  #endif /* _PATCHLEVEL_H_ */