126-upstream-bash43-026.patch 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. BASH PATCH REPORT
  2. =================
  3. Bash-Release: 4.3
  4. Patch-ID: bash43-026
  5. Bug-Reported-by: Tavis Ormandy <taviso@cmpxchg8b.com>
  6. Bug-Reference-ID:
  7. Bug-Reference-URL: http://twitter.com/taviso/statuses/514887394294652929
  8. Bug-Description:
  9. Under certain circumstances, bash can incorrectly save a lookahead character and
  10. return it on a subsequent call, even when reading a new line.
  11. Patch (apply with `patch -p0'):
  12. --- a/parse.y
  13. +++ b/parse.y
  14. @@ -2953,6 +2953,8 @@ reset_parser ()
  15. FREE (word_desc_to_read);
  16. word_desc_to_read = (WORD_DESC *)NULL;
  17. + eol_ungetc_lookahead = 0;
  18. +
  19. current_token = '\n'; /* XXX */
  20. last_read_token = '\n';
  21. token_to_read = '\n';
  22. --- a/y.tab.c
  23. +++ b/y.tab.c
  24. @@ -5265,6 +5265,8 @@ reset_parser ()
  25. FREE (word_desc_to_read);
  26. word_desc_to_read = (WORD_DESC *)NULL;
  27. + eol_ungetc_lookahead = 0;
  28. +
  29. current_token = '\n'; /* XXX */
  30. last_read_token = '\n';
  31. token_to_read = '\n';
  32. @@ -8539,4 +8541,3 @@ set_line_mbstate ()
  33. }
  34. }
  35. #endif /* HANDLE_MULTIBYTE */
  36. -
  37. --- a/patchlevel.h
  38. +++ b/patchlevel.h
  39. @@ -25,6 +25,6 @@
  40. regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
  41. looks for to find the patch level (for the sccs version string). */
  42. -#define PATCHLEVEL 25
  43. +#define PATCHLEVEL 26
  44. #endif /* _PATCHLEVEL_H_ */