0032-patchlevel-32.patch 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-032
  2. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
  3. BASH PATCH REPORT
  4. =================
  5. Bash-Release: 4.3
  6. Patch-ID: bash43-032
  7. Bug-Reported-by: crispusfairbairn@gmail.com
  8. Bug-Reference-ID: <b5e499f7-3b98-408d-9f94-c0387580e73a@googlegroups.com>
  9. Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00013.html
  10. Bug-Description:
  11. When bash is running in Posix mode, it allows signals -- including SIGCHLD --
  12. to interrupt the `wait' builtin, as Posix requires. However, the interrupt
  13. causes bash to not run a SIGCHLD trap for all exited children. This patch
  14. fixes the issue and restores the documented behavior in Posix mode.
  15. Patch (apply with `patch -p0'):
  16. *** a/bash-4.3-patched/jobs.c 2014-05-14 09:20:15.000000000 -0400
  17. --- b/jobs.c 2014-09-09 11:50:38.000000000 -0400
  18. ***************
  19. *** 3340,3344 ****
  20. {
  21. interrupt_immediately = 0;
  22. ! trap_handler (SIGCHLD); /* set pending_traps[SIGCHLD] */
  23. wait_signal_received = SIGCHLD;
  24. /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up;
  25. --- 3346,3352 ----
  26. {
  27. interrupt_immediately = 0;
  28. ! /* This was trap_handler (SIGCHLD) but that can lose traps if
  29. ! children_exited > 1 */
  30. ! queue_sigchld_trap (children_exited);
  31. wait_signal_received = SIGCHLD;
  32. /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up;
  33. *** a/bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
  34. --- b/patchlevel.h 2014-03-20 20:01:28.000000000 -0400
  35. ***************
  36. *** 26,30 ****
  37. looks for to find the patch level (for the sccs version string). */
  38. ! #define PATCHLEVEL 31
  39. #endif /* _PATCHLEVEL_H_ */
  40. --- 26,30 ----
  41. looks for to find the patch level (for the sccs version string). */
  42. ! #define PATCHLEVEL 32
  43. #endif /* _PATCHLEVEL_H_ */