You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.3 KiB
82 lines
2.3 KiB
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_ */
|
|
|