author | Stefan Teleman <stefan.teleman@oracle.com> |
Fri, 19 Apr 2013 10:32:55 -0700 | |
changeset 1275 | 03b86a2f9021 |
permissions | -rw-r--r-- |
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_ */ |