			     BASH PATCH REPORT
			     =================

Bash-Release: 3.2
Patch-ID: bash32-030

Bug-Reported-by:	Paul Eggert <eggert@cs.ucla.edu> Andreas Schwab <schwab@suse.de>
Bug-Reference-ID:	<877il0nu84.fsf_-_@penguin.cs.ucla.edu> <m28x5gparz.fsf@igel.home>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00023.html http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.htmlhttp://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.html

Bug-Description:

If redirections attached to a compound command fail, bash does not set the
command's exit status correctly.  This only happens when the command is the
first in a sequential list.

Patch:

*** bash-3.2-patched/execute_cmd.c	2007-03-24 14:51:05.000000000 -0400
--- bash-3.2/execute_cmd.c	2007-11-05 22:31:14.000000000 -0500
***************
*** 615,619 ****
        redirection_undo_list = (REDIRECT *)NULL;
        dispose_exec_redirects ();
!       return (EXECUTION_FAILURE);
      }
  
--- 620,624 ----
        redirection_undo_list = (REDIRECT *)NULL;
        dispose_exec_redirects ();
!       return (last_command_exit_value = EXECUTION_FAILURE);
      }

*** bash-3.2/patchlevel.h	Thu Apr 13 08:31:04 2006
--- bash-3.2/patchlevel.h	Mon Oct 16 14:22:54 2006
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 29
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 30
  
  #endif /* _PATCHLEVEL_H_ */

  
