Roman Rakus cdbb6d
			     BASH PATCH REPORT
Roman Rakus cdbb6d
			     =================
Roman Rakus cdbb6d
Roman Rakus cdbb6d
Bash-Release:	4.2
Roman Rakus cdbb6d
Patch-ID:	bash42-023
Roman Rakus cdbb6d
Roman Rakus cdbb6d
Bug-Reported-by:	Ewan Mellor <Ewan.Mellor@eu.citrix.com>
Roman Rakus cdbb6d
Bug-Reference-ID:	<6005BE083BF501439A84DC3523BAC82DC4B964FD12@LONPMAILBOX01.citrite.net>
Roman Rakus cdbb6d
Bug-Reference-URL:	
Roman Rakus cdbb6d
Roman Rakus cdbb6d
Bug-Description:
Roman Rakus cdbb6d
Roman Rakus cdbb6d
Under some circumstances, an exit trap triggered by a bad substitution
Roman Rakus cdbb6d
error when errexit is enabled will cause the shell to exit with an
Roman Rakus cdbb6d
incorrect exit status (0).
Roman Rakus cdbb6d
Roman Rakus cdbb6d
Patch (apply with `patch -p0'):
Roman Rakus cdbb6d
Roman Rakus cdbb6d
*** ../bash-4.2-patched/subst.c	2011-11-21 12:04:38.000000000 -0500
Roman Rakus cdbb6d
--- subst.c	2012-02-08 13:36:28.000000000 -0500
Roman Rakus cdbb6d
***************
Roman Rakus cdbb6d
*** 7275,7278 ****
Roman Rakus cdbb6d
--- 7281,7285 ----
Roman Rakus cdbb6d
      case '\0':
Roman Rakus cdbb6d
      bad_substitution:
Roman Rakus cdbb6d
+       last_command_exit_value = EXECUTION_FAILURE;
Roman Rakus cdbb6d
        report_error (_("%s: bad substitution"), string ? string : "??");
Roman Rakus cdbb6d
        FREE (value);
Roman Rakus cdbb6d
*** ../bash-4.2-patched/error.c	2009-08-21 22:31:31.000000000 -0400
Roman Rakus cdbb6d
--- error.c	2012-02-25 15:54:40.000000000 -0500
Roman Rakus cdbb6d
***************
Roman Rakus cdbb6d
*** 201,205 ****
Roman Rakus cdbb6d
    va_end (args);
Roman Rakus cdbb6d
    if (exit_immediately_on_error)
Roman Rakus cdbb6d
!     exit_shell (1);
Roman Rakus cdbb6d
  }
Roman Rakus cdbb6d
  
Roman Rakus cdbb6d
--- 201,209 ----
Roman Rakus cdbb6d
    va_end (args);
Roman Rakus cdbb6d
    if (exit_immediately_on_error)
Roman Rakus cdbb6d
!     {
Roman Rakus cdbb6d
!       if (last_command_exit_value == 0)
Roman Rakus cdbb6d
! 	last_command_exit_value = 1;
Roman Rakus cdbb6d
!       exit_shell (last_command_exit_value);
Roman Rakus cdbb6d
!     }
Roman Rakus cdbb6d
  }
Roman Rakus cdbb6d
  
Roman Rakus cdbb6d
*** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
Roman Rakus cdbb6d
--- patchlevel.h	Thu Feb 24 21:41:34 2011
Roman Rakus cdbb6d
***************
Roman Rakus cdbb6d
*** 26,30 ****
Roman Rakus cdbb6d
     looks for to find the patch level (for the sccs version string). */
Roman Rakus cdbb6d
  
Roman Rakus cdbb6d
! #define PATCHLEVEL 22
Roman Rakus cdbb6d
  
Roman Rakus cdbb6d
  #endif /* _PATCHLEVEL_H_ */
Roman Rakus cdbb6d
--- 26,30 ----
Roman Rakus cdbb6d
     looks for to find the patch level (for the sccs version string). */
Roman Rakus cdbb6d
  
Roman Rakus cdbb6d
! #define PATCHLEVEL 23
Roman Rakus cdbb6d
  
Roman Rakus cdbb6d
  #endif /* _PATCHLEVEL_H_ */