equal
deleted
inserted
replaced
|
1 BASH PATCH REPORT |
|
2 ================= |
|
3 |
|
4 Bash-Release: 4.2 |
|
5 Patch-ID: bash42-023 |
|
6 |
|
7 Bug-Reported-by: Ewan Mellor <[email protected]> |
|
8 Bug-Reference-ID: <6005BE083BF501439A84DC3523BAC82DC4B964FD12@LONPMAILBOX01.citrite.net> |
|
9 Bug-Reference-URL: |
|
10 |
|
11 Bug-Description: |
|
12 |
|
13 Under some circumstances, an exit trap triggered by a bad substitution |
|
14 error when errexit is enabled will cause the shell to exit with an |
|
15 incorrect exit status (0). |
|
16 |
|
17 Patch (apply with `patch -p0'): |
|
18 |
|
19 *** ../bash-4.2-patched/subst.c 2011-11-21 12:04:38.000000000 -0500 |
|
20 --- subst.c 2012-02-08 13:36:28.000000000 -0500 |
|
21 *************** |
|
22 *** 7275,7278 **** |
|
23 --- 7281,7285 ---- |
|
24 case '\0': |
|
25 bad_substitution: |
|
26 + last_command_exit_value = EXECUTION_FAILURE; |
|
27 report_error (_("%s: bad substitution"), string ? string : "??"); |
|
28 FREE (value); |
|
29 *** ../bash-4.2-patched/error.c 2009-08-21 22:31:31.000000000 -0400 |
|
30 --- error.c 2012-02-25 15:54:40.000000000 -0500 |
|
31 *************** |
|
32 *** 201,205 **** |
|
33 va_end (args); |
|
34 if (exit_immediately_on_error) |
|
35 ! exit_shell (1); |
|
36 } |
|
37 |
|
38 --- 201,209 ---- |
|
39 va_end (args); |
|
40 if (exit_immediately_on_error) |
|
41 ! { |
|
42 ! if (last_command_exit_value == 0) |
|
43 ! last_command_exit_value = 1; |
|
44 ! exit_shell (last_command_exit_value); |
|
45 ! } |
|
46 } |
|
47 |
|
48 *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010 |
|
49 --- patchlevel.h Thu Feb 24 21:41:34 2011 |
|
50 *************** |
|
51 *** 26,30 **** |
|
52 looks for to find the patch level (for the sccs version string). */ |
|
53 |
|
54 ! #define PATCHLEVEL 22 |
|
55 |
|
56 #endif /* _PATCHLEVEL_H_ */ |
|
57 --- 26,30 ---- |
|
58 looks for to find the patch level (for the sccs version string). */ |
|
59 |
|
60 ! #define PATCHLEVEL 23 |
|
61 |
|
62 #endif /* _PATCHLEVEL_H_ */ |