bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bash-3.1 Official patch 9


From: Chet Ramey
Subject: Bash-3.1 Official patch 9
Date: Mon, 20 Feb 2006 22:02:31 -0500

                             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
--- 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
--- 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_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
( ``Discere est Dolere'' -- chet )
                                           Live Strong.  No day but today.
Chet Ramey, ITS, CWRU    chet@case.edu    http://cnswww.cns.cwru.edu/~chet/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]