diff options
Diffstat (limited to 'package/bash/bash31-009')
| -rw-r--r-- | package/bash/bash31-009 | 66 | 
1 files changed, 66 insertions, 0 deletions
| diff --git a/package/bash/bash31-009 b/package/bash/bash31-009 new file mode 100644 index 000000000..62f456fff --- /dev/null +++ b/package/bash/bash31-009 @@ -0,0 +1,66 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-009 + +Bug-Reported-by: Joshua Neuheisel <jneuheisel@gmail.com> +Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html + +Bug-Description: + +Under some circumstances, background (asynchronous) jobs can set the terminal +process group incorrectly.  This can cause a foreground process (including +the foreground shell) to get read errors and exit. + +Patch: + +*** bash-3.1/jobs.c	Fri Nov 11 23:13:27 2005 +--- bash-3.1/jobs.c	Wed Feb  1 13:55:38 2006 +*************** +*** 620,625 **** +  	   * the parent gives it away. +  	   * +  	   */ +! 	  if (job_control && newjob->pgrp) +  	    give_terminal_to (newjob->pgrp, 0); +  	} +--- 634,642 ---- +  	   * the parent gives it away. +  	   * ++ 	   * Don't give the terminal away if this shell is an asynchronous ++ 	   * subshell. ++ 	   * +  	   */ +! 	  if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) +  	    give_terminal_to (newjob->pgrp, 0); +  	} +*************** +*** 1656,1660 **** +  	     shell's process group (we could be in the middle of a +  	     pipeline, for example). */ +! 	  if (async_p == 0 && pipeline_pgrp != shell_pgrp) +  	    give_terminal_to (pipeline_pgrp, 0); +   +--- 1743,1747 ---- +  	     shell's process group (we could be in the middle of a +  	     pipeline, for example). */ +! 	  if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0)) +  	    give_terminal_to (pipeline_pgrp, 0); +   +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 26,30 **** +     looks for to find the patch level (for the sccs version string). */ +   +! #define PATCHLEVEL 8 +   +  #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- +     looks for to find the patch level (for the sccs version string). */ +   +! #define PATCHLEVEL 9 +   +  #endif /* _PATCHLEVEL_H_ */ | 
