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_ */