2
1

bash31-009 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. BASH PATCH REPORT
  2. =================
  3. Bash-Release: 3.1
  4. Patch-ID: bash31-009
  5. Bug-Reported-by: Joshua Neuheisel <jneuheisel@gmail.com>
  6. Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com>
  7. Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html
  8. Bug-Description:
  9. Under some circumstances, background (asynchronous) jobs can set the terminal
  10. process group incorrectly. This can cause a foreground process (including
  11. the foreground shell) to get read errors and exit.
  12. Patch:
  13. *** bash-3.1/jobs.c Fri Nov 11 23:13:27 2005
  14. --- bash-3.1/jobs.c Wed Feb 1 13:55:38 2006
  15. ***************
  16. *** 620,625 ****
  17. * the parent gives it away.
  18. *
  19. */
  20. ! if (job_control && newjob->pgrp)
  21. give_terminal_to (newjob->pgrp, 0);
  22. }
  23. --- 634,642 ----
  24. * the parent gives it away.
  25. *
  26. + * Don't give the terminal away if this shell is an asynchronous
  27. + * subshell.
  28. + *
  29. */
  30. ! if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0)
  31. give_terminal_to (newjob->pgrp, 0);
  32. }
  33. ***************
  34. *** 1656,1660 ****
  35. shell's process group (we could be in the middle of a
  36. pipeline, for example). */
  37. ! if (async_p == 0 && pipeline_pgrp != shell_pgrp)
  38. give_terminal_to (pipeline_pgrp, 0);
  39. --- 1743,1747 ----
  40. shell's process group (we could be in the middle of a
  41. pipeline, for example). */
  42. ! if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0))
  43. give_terminal_to (pipeline_pgrp, 0);
  44. *** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
  45. --- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
  46. ***************
  47. *** 26,30 ****
  48. looks for to find the patch level (for the sccs version string). */
  49. ! #define PATCHLEVEL 8
  50. #endif /* _PATCHLEVEL_H_ */
  51. --- 26,30 ----
  52. looks for to find the patch level (for the sccs version string). */
  53. ! #define PATCHLEVEL 9
  54. #endif /* _PATCHLEVEL_H_ */