Roman Rakus f43bd3
			     BASH PATCH REPORT
Roman Rakus f43bd3
			     =================
Roman Rakus f43bd3
Roman Rakus f43bd3
Bash-Release:	4.2
Roman Rakus f43bd3
Patch-ID:	bash42-045
Roman Rakus f43bd3
Roman Rakus f43bd3
Bug-Reported-by:	Stephane Chazelas <stephane.chazelas@gmail.com>
Roman Rakus f43bd3
Bug-Reference-ID:	<20130218195539.GA9620@chaz.gmail.com>
Roman Rakus f43bd3
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2013-02/msg00080.html
Roman Rakus f43bd3
Roman Rakus f43bd3
Bug-Description:
Roman Rakus f43bd3
Roman Rakus f43bd3
The <&n- and >&n- redirections, which move one file descriptor to another,
Roman Rakus f43bd3
leave the file descriptor closed when applied to builtins or compound
Roman Rakus f43bd3
commands.
Roman Rakus f43bd3
Roman Rakus f43bd3
Patch (apply with `patch -p0'):
Roman Rakus f43bd3
Roman Rakus f43bd3
*** ../bash-4.2-patched/redir.c	2013-01-30 11:56:09.000000000 -0500
Roman Rakus f43bd3
--- redir.c	2013-02-19 09:38:36.000000000 -0500
Roman Rakus f43bd3
***************
Roman Rakus f43bd3
*** 1008,1011 ****
Roman Rakus f43bd3
--- 1008,1021 ----
Roman Rakus f43bd3
  	      REDIRECTION_ERROR (r, errno, -1);
Roman Rakus f43bd3
  	    }
Roman Rakus f43bd3
+ 	  if ((flags & RX_UNDOABLE) && (ri == r_move_input || ri == r_move_output))
Roman Rakus f43bd3
+ 	    {
Roman Rakus f43bd3
+ 	      /* r_move_input and r_move_output add an additional close()
Roman Rakus f43bd3
+ 		 that needs to be undone */
Roman Rakus f43bd3
+ 	      if (fcntl (redirector, F_GETFD, 0) != -1)
Roman Rakus f43bd3
+ 		{
Roman Rakus f43bd3
+ 		  r = add_undo_redirect (redir_fd, r_close_this, -1);
Roman Rakus f43bd3
+ 		  REDIRECTION_ERROR (r, errno, -1);
Roman Rakus f43bd3
+ 		}
Roman Rakus f43bd3
+ 	    }
Roman Rakus f43bd3
  #if defined (BUFFERED_INPUT)
Roman Rakus f43bd3
  	  check_bash_input (redirector);
Roman Rakus f43bd3
Roman Rakus f43bd3
*** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
Roman Rakus f43bd3
--- patchlevel.h	Thu Feb 24 21:41:34 2011
Roman Rakus f43bd3
***************
Roman Rakus f43bd3
*** 26,30 ****
Roman Rakus f43bd3
     looks for to find the patch level (for the sccs version string). */
Roman Rakus f43bd3
  
Roman Rakus f43bd3
! #define PATCHLEVEL 44
Roman Rakus f43bd3
  
Roman Rakus f43bd3
  #endif /* _PATCHLEVEL_H_ */
Roman Rakus f43bd3
--- 26,30 ----
Roman Rakus f43bd3
     looks for to find the patch level (for the sccs version string). */
Roman Rakus f43bd3
  
Roman Rakus f43bd3
! #define PATCHLEVEL 45
Roman Rakus f43bd3
  
Roman Rakus f43bd3
  #endif /* _PATCHLEVEL_H_ */