2
1

bash32-021 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. BASH PATCH REPORT
  2. =================
  3. Bash-Release: 3.2
  4. Patch-ID: bash32-021
  5. Bug-Reported-by: BAGSHAW Paul RD-TECH-REN <paul.bagshaw@orange-ftgroup.com>
  6. Bug-Reference-ID: <941BA0BF46DB8F4983FF7C8AFE800BC205EA7D4B@ftrdmel3.rd.francetelecom.fr>
  7. Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00065.html
  8. Bug-Description:
  9. When the parser read a backslash-escaped character that would be treated
  10. internally as an escape, it would double the number of escape characters.
  11. Patch:
  12. *** ../bash-3.2-patched/parse.y Mon Oct 30 17:22:00 2006
  13. --- bash-3.2/parse.y Sat Mar 24 17:13:20 2007
  14. ***************
  15. *** 3377,3381 ****
  16. {
  17. pass_next_character = 0;
  18. ! goto got_character;
  19. }
  20. --- 3377,3381 ----
  21. {
  22. pass_next_character = 0;
  23. ! goto got_escaped_character;
  24. }
  25. ***************
  26. *** 3651,3660 ****
  27. got_character:
  28. - all_digit_token &= DIGIT (character);
  29. - dollar_present |= character == '$';
  30. -
  31. if (character == CTLESC || character == CTLNUL)
  32. token[token_index++] = CTLESC;
  33. token[token_index++] = character;
  34. --- 3651,3662 ----
  35. got_character:
  36. if (character == CTLESC || character == CTLNUL)
  37. token[token_index++] = CTLESC;
  38. + got_escaped_character:
  39. +
  40. + all_digit_token &= DIGIT (character);
  41. + dollar_present |= character == '$';
  42. +
  43. token[token_index++] = character;
  44. *** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
  45. --- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
  46. ***************
  47. *** 26,30 ****
  48. looks for to find the patch level (for the sccs version string). */
  49. ! #define PATCHLEVEL 20
  50. #endif /* _PATCHLEVEL_H_ */
  51. --- 26,30 ----
  52. looks for to find the patch level (for the sccs version string). */
  53. ! #define PATCHLEVEL 21
  54. #endif /* _PATCHLEVEL_H_ */