83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 			     BASH PATCH REPORT
 | |
| 			     =================
 | |
| 
 | |
| Bash-Release:	4.2
 | |
| Patch-ID:	bash42-009
 | |
| 
 | |
| Bug-Reported-by:	<piuma@piumalab.org>
 | |
| Bug-Reference-ID:	<4DAAC0DB.7060606@piumalab.org>
 | |
| Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00075.html
 | |
| 
 | |
| Bug-Description:
 | |
| 
 | |
| Under certain circumstances, running `fc -l' two times in succession with a
 | |
| relative history offset at the end of the history will result in an incorrect
 | |
| calculation of the last history entry and a seg fault.
 | |
| 
 | |
| Patch (apply with `patch -p0'):
 | |
| 
 | |
| *** ../bash-4.2-patched/builtins/fc.def	2010-05-30 18:25:38.000000000 -0400
 | |
| --- builtins/fc.def	2011-04-19 15:46:17.000000000 -0400
 | |
| ***************
 | |
| *** 305,309 ****
 | |
|   
 | |
|     /* XXX */
 | |
| !   if (saved_command_line_count > 0 && i == last_hist && hlist[last_hist] == 0)
 | |
|       while (last_hist >= 0 && hlist[last_hist] == 0)
 | |
|         last_hist--;
 | |
| --- 305,309 ----
 | |
|   
 | |
|     /* XXX */
 | |
| !   if (i == last_hist && hlist[last_hist] == 0)
 | |
|       while (last_hist >= 0 && hlist[last_hist] == 0)
 | |
|         last_hist--;
 | |
| ***************
 | |
| *** 476,480 ****
 | |
|   {
 | |
|     int sign, n, clen, rh;
 | |
| !   register int i, j;
 | |
|     register char *s;
 | |
|   
 | |
| --- 476,480 ----
 | |
|   {
 | |
|     int sign, n, clen, rh;
 | |
| !   register int i, j, last_hist;
 | |
|     register char *s;
 | |
|   
 | |
| ***************
 | |
| *** 496,500 ****
 | |
|        calculation as if it were on. */
 | |
|     rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
 | |
| !   i -= rh + hist_last_line_added;
 | |
|   
 | |
|     /* No specification defaults to most recent command. */
 | |
| --- 496,508 ----
 | |
|        calculation as if it were on. */
 | |
|     rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
 | |
| !   last_hist = i - rh - hist_last_line_added;
 | |
| ! 
 | |
| !   if (i == last_hist && hlist[last_hist] == 0)
 | |
| !     while (last_hist >= 0 && hlist[last_hist] == 0)
 | |
| !       last_hist--;
 | |
| !   if (last_hist < 0)
 | |
| !     return (-1);
 | |
| ! 
 | |
| !   i = last_hist;
 | |
|   
 | |
|     /* No specification defaults to most recent command. */
 | |
| *** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
 | |
| --- patchlevel.h	Thu Feb 24 21:41:34 2011
 | |
| ***************
 | |
| *** 26,30 ****
 | |
|      looks for to find the patch level (for the sccs version string). */
 | |
|   
 | |
| ! #define PATCHLEVEL 8
 | |
|   
 | |
|   #endif /* _PATCHLEVEL_H_ */
 | |
| --- 26,30 ----
 | |
|      looks for to find the patch level (for the sccs version string). */
 | |
|   
 | |
| ! #define PATCHLEVEL 9
 | |
|   
 | |
|   #endif /* _PATCHLEVEL_H_ */
 |