Ondrej Oprala 529fec
			     BASH PATCH REPORT
Ondrej Oprala 529fec
			     =================
Ondrej Oprala 529fec
Ondrej Oprala 529fec
Bash-Release:	4.3
Ondrej Oprala 529fec
Patch-ID:	bash43-022
Ondrej Oprala 529fec
Ondrej Oprala 529fec
Bug-Reported-by:	scorp.dev.null@gmail.com
Ondrej Oprala 529fec
Bug-Reference-ID:	<E1WxXw8-0007iE-Bi@pcm14>
Ondrej Oprala 529fec
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00061.html
Ondrej Oprala 529fec
Ondrej Oprala 529fec
Bug-Description:
Ondrej Oprala 529fec
Ondrej Oprala 529fec
Using nested pipelines within loops with the `lastpipe' option set can result
Ondrej Oprala 529fec
in a segmentation fault.
Ondrej Oprala 529fec
Ondrej Oprala 529fec
Patch (apply with `patch -p0'):
Ondrej Oprala 529fec
Ondrej Oprala 529fec
*** ../bash-4.3-patched/execute_cmd.c	2014-01-31 10:54:52.000000000 -0500
Ondrej Oprala 529fec
--- execute_cmd.c	2014-06-19 08:05:49.000000000 -0400
Ondrej Oprala 529fec
***************
Ondrej Oprala 529fec
*** 2410,2414 ****
Ondrej Oprala 529fec
        lstdin = wait_for (lastpid);
Ondrej Oprala 529fec
  #if defined (JOB_CONTROL)
Ondrej Oprala 529fec
!       exec_result = job_exit_status (lastpipe_jid);
Ondrej Oprala 529fec
  #endif
Ondrej Oprala 529fec
        unfreeze_jobs_list ();
Ondrej Oprala 529fec
--- 2425,2438 ----
Ondrej Oprala 529fec
        lstdin = wait_for (lastpid);
Ondrej Oprala 529fec
  #if defined (JOB_CONTROL)
Ondrej Oprala 529fec
!       /* If wait_for removes the job from the jobs table, use result of last
Ondrej Oprala 529fec
! 	 command as pipeline's exit status as usual.  The jobs list can get
Ondrej Oprala 529fec
! 	 frozen and unfrozen at inconvenient times if there are multiple pipelines
Ondrej Oprala 529fec
! 	 running simultaneously. */
Ondrej Oprala 529fec
!       if (INVALID_JOB (lastpipe_jid) == 0)
Ondrej Oprala 529fec
! 	exec_result = job_exit_status (lastpipe_jid);
Ondrej Oprala 529fec
!       else if (pipefail_opt)
Ondrej Oprala 529fec
! 	exec_result = exec_result | lstdin;	/* XXX */
Ondrej Oprala 529fec
!       /* otherwise we use exec_result */
Ondrej Oprala 529fec
!         
Ondrej Oprala 529fec
  #endif
Ondrej Oprala 529fec
        unfreeze_jobs_list ();
Ondrej Oprala 529fec
*** ../bash-4.3/patchlevel.h	2012-12-29 10:47:57.000000000 -0500
Ondrej Oprala 529fec
--- patchlevel.h	2014-03-20 20:01:28.000000000 -0400
Ondrej Oprala 529fec
***************
Ondrej Oprala 529fec
*** 26,30 ****
Ondrej Oprala 529fec
     looks for to find the patch level (for the sccs version string). */
Ondrej Oprala 529fec
  
Ondrej Oprala 529fec
! #define PATCHLEVEL 21
Ondrej Oprala 529fec
  
Ondrej Oprala 529fec
  #endif /* _PATCHLEVEL_H_ */
Ondrej Oprala 529fec
--- 26,30 ----
Ondrej Oprala 529fec
     looks for to find the patch level (for the sccs version string). */
Ondrej Oprala 529fec
  
Ondrej Oprala 529fec
! #define PATCHLEVEL 22
Ondrej Oprala 529fec
  
Ondrej Oprala 529fec
  #endif /* _PATCHLEVEL_H_ */