Browse Source

Bug#19474 readline bug: mysql: free(): invalid pointer

- Write to uninitialised memory occured since _rl_rapped_lines buffer
   was not extended in CHECK_INV_LBREAKS macro
 - Patch submitted to bug-readline@gnu.org


cmd-line-utils/readline/display.c:
  Extend _rl_wrapped_lines everytime inv_lbsize is increased
pull/374/head
unknown 19 years ago
parent
commit
9a0b8eb1ea
  1. 12
      cmd-line-utils/readline/display.c

12
cmd-line-utils/readline/display.c

@ -524,14 +524,26 @@ rl_redisplay ()
wrap_offset = prompt_invis_chars_first_line = 0;
}
#if defined (HANDLE_MULTIBYTE)
#define CHECK_INV_LBREAKS() \
do { \
if (newlines >= (inv_lbsize - 2)) \
{ \
inv_lbsize *= 2; \
inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
_rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
} \
} while (0)
#else
#define CHECK_INV_LBREAKS() \
do { \
if (newlines >= (inv_lbsize - 2)) \
{ \
inv_lbsize *= 2; \
inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
} \
} while (0)
#endif
#if defined (HANDLE_MULTIBYTE)
#define CHECK_LPOS() \

Loading…
Cancel
Save