142-upstream-bash43-042.patch (1345B)
1 BASH PATCH REPORT 2 ================= 3 4 Bash-Release: 4.3 5 Patch-ID: bash43-042 6 7 Bug-Reported-by: Nathan Neulinger <nneul@neulinger.org> 8 Bug-Reference-ID: <558EFDF2.7060402@neulinger.org> 9 Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00096.html 10 11 Bug-Description: 12 13 There is a problem when parsing command substitutions containing `case' 14 commands within pipelines that causes the parser to not correctly identify 15 the end of the command substitution. 16 17 Patch (apply with `patch -p0'): 18 19 --- a/parse.y 20 +++ b/parse.y 21 @@ -3708,6 +3708,8 @@ eof_error: 22 /*itrace("parse_comsub:%d: lex_inword -> 1 ch = `%c' (%d)", line_number, ch, __LINE__);*/ 23 tflags |= LEX_INWORD; 24 lex_wlen = 0; 25 + if (tflags & LEX_RESWDOK) 26 + lex_rwlen = 0; 27 } 28 } 29 30 --- a/y.tab.c 31 +++ b/y.tab.c 32 @@ -6020,6 +6020,8 @@ eof_error: 33 /*itrace("parse_comsub:%d: lex_inword -> 1 ch = `%c' (%d)", line_number, ch, __LINE__);*/ 34 tflags |= LEX_INWORD; 35 lex_wlen = 0; 36 + if (tflags & LEX_RESWDOK) 37 + lex_rwlen = 0; 38 } 39 } 40 41 --- a/patchlevel.h 42 +++ b/patchlevel.h 43 @@ -25,6 +25,6 @@ 44 regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh 45 looks for to find the patch level (for the sccs version string). */ 46 47 -#define PATCHLEVEL 41 48 +#define PATCHLEVEL 42 49 50 #endif /* _PATCHLEVEL_H_ */