You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.3 KiB

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