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