|
Tim Waugh |
b13041 |
BASH PATCH REPORT
|
|
Tim Waugh |
b13041 |
=================
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
Bash-Release: 3.2
|
|
Tim Waugh |
b13041 |
Patch-ID: bash32-013
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
Bug-Reported-by: Magnus Svensson <msvensson@mysql.com>
|
|
Tim Waugh |
b13041 |
Bug-Reference-ID: <45BDC44D.80609@mysql.com>
|
|
Tim Waugh |
b13041 |
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
Bug-Description:
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
Readline neglects to reallocate the array it uses to keep track of wrapped
|
|
Tim Waugh |
b13041 |
screen lines when increasing its size. This will eventually result in
|
|
Tim Waugh |
b13041 |
segmentation faults when given sufficiently long input.
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
Patch:
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
|
|
Tim Waugh |
b13041 |
--- lib/readline/display.c Fri Feb 2 20:23:17 2007
|
|
Tim Waugh |
b13041 |
***************
|
|
Tim Waugh |
b13041 |
*** 561,574 ****
|
|
Tim Waugh |
b13041 |
--- 561,586 ----
|
|
Tim Waugh |
b13041 |
wrap_offset = prompt_invis_chars_first_line = 0;
|
|
Tim Waugh |
b13041 |
}
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
+ #if defined (HANDLE_MULTIBYTE)
|
|
Tim Waugh |
b13041 |
#define CHECK_INV_LBREAKS() \
|
|
Tim Waugh |
b13041 |
do { \
|
|
Tim Waugh |
b13041 |
if (newlines >= (inv_lbsize - 2)) \
|
|
Tim Waugh |
b13041 |
{ \
|
|
Tim Waugh |
b13041 |
inv_lbsize *= 2; \
|
|
Tim Waugh |
b13041 |
inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
|
|
Tim Waugh |
b13041 |
+ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
|
|
Tim Waugh |
b13041 |
} \
|
|
Tim Waugh |
b13041 |
} while (0)
|
|
Tim Waugh |
b13041 |
+ #else
|
|
Tim Waugh |
b13041 |
+ #define CHECK_INV_LBREAKS() \
|
|
Tim Waugh |
b13041 |
+ do { \
|
|
Tim Waugh |
b13041 |
+ if (newlines >= (inv_lbsize - 2)) \
|
|
Tim Waugh |
b13041 |
+ { \
|
|
Tim Waugh |
b13041 |
+ inv_lbsize *= 2; \
|
|
Tim Waugh |
b13041 |
+ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
|
|
Tim Waugh |
b13041 |
+ } \
|
|
Tim Waugh |
b13041 |
+ } while (0)
|
|
Tim Waugh |
b13041 |
+ #endif /* HANDLE_MULTIBYTE */
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
#if defined (HANDLE_MULTIBYTE)
|
|
Tim Waugh |
b13041 |
#define CHECK_LPOS() \
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
|
Tim Waugh |
b13041 |
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
|
Tim Waugh |
b13041 |
***************
|
|
Tim Waugh |
b13041 |
*** 26,30 ****
|
|
Tim Waugh |
b13041 |
looks for to find the patch level (for the sccs version string). */
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
! #define PATCHLEVEL 12
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
#endif /* _PATCHLEVEL_H_ */
|
|
Tim Waugh |
b13041 |
--- 26,30 ----
|
|
Tim Waugh |
b13041 |
looks for to find the patch level (for the sccs version string). */
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
! #define PATCHLEVEL 13
|
|
Tim Waugh |
b13041 |
|
|
Tim Waugh |
b13041 |
#endif /* _PATCHLEVEL_H_ */
|