summaryrefslogtreecommitdiff
path: root/package/readline/readline52-002.patch
diff options
context:
space:
mode:
authorLionel Landwerlin <llandwerlin@gmail.com>2010-01-27 02:08:58 +0100
committerPeter Korsgaard <jacmet@sunsite.dk>2010-01-28 22:31:27 +0100
commitfe6e67ba96b7fedf91faac7992813f7233a5e58b (patch)
tree46fe50138f19ff53e56245f5081ef07e2de6a309 /package/readline/readline52-002.patch
parent5ad8ad0c3729ccf7012f414969304950fb58c456 (diff)
readline: convert to autotools infrastructure
[Peter: renamed patches to get picked up by infrastructure] Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/readline/readline52-002.patch')
-rw-r--r--package/readline/readline52-002.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/package/readline/readline52-002.patch b/package/readline/readline52-002.patch
new file mode 100644
index 000000000..169a88662
--- /dev/null
+++ b/package/readline/readline52-002.patch
@@ -0,0 +1,49 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-002
+
+Bug-Reported-by: Magnus Svensson <msvensson@mysql.com>
+Bug-Reference-ID: <45BDC44D.80609@mysql.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html
+
+Bug-Description:
+
+Readline neglects to reallocate the array it uses to keep track of wrapped
+screen lines when increasing its size. This will eventually result in
+segmentation faults when given sufficiently long input.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c Thu Sep 14 14:20:12 2006
+--- ./display.c Fri Feb 2 20:23:17 2007
+***************
+*** 561,574 ****
+--- 561,586 ----
+ 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 /* HANDLE_MULTIBYTE */
+
+ #if defined (HANDLE_MULTIBYTE)
+ #define CHECK_LPOS() \