texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[6909] avoid free in xspara_new


From: Gavin D. Smith
Subject: [6909] avoid free in xspara_new
Date: Fri, 01 Jan 2016 21:13:44 +0000

Revision: 6909
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6909
Author:   gavin
Date:     2016-01-01 21:13:43 +0000 (Fri, 01 Jan 2016)
Log Message:
-----------
avoid free in xspara_new

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/tp/Texinfo/Convert/XSParagraph/xspara.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2016-01-01 18:58:36 UTC (rev 6908)
+++ trunk/ChangeLog     2016-01-01 21:13:43 UTC (rev 6909)
@@ -1,3 +1,9 @@
+2016-01-01  Gavin Smith  <address@hidden>
+
+       * tp/Texinfo/Convert/XSParagraph/xspara.c (xspara_new): Don't 
+       call free on TEXT objects, but reuse the storage. Attempt at 
+       fixing 'Freed to wrong pool' error reported by Eli Zaretskii.
+
 2016-01-01  Eli Zaretskii  <address@hidden>
 
        * tp/Texinfo/Convert/XSParagraph/xspara.c (mbrtowc): Don't try to

Modified: trunk/tp/Texinfo/Convert/XSParagraph/xspara.c
===================================================================
--- trunk/tp/Texinfo/Convert/XSParagraph/xspara.c       2016-01-01 18:58:36 UTC 
(rev 6908)
+++ trunk/tp/Texinfo/Convert/XSParagraph/xspara.c       2016-01-01 21:13:43 UTC 
(rev 6909)
@@ -267,11 +267,14 @@
   dTHX; /* Perl boiler plate */
 
   /* Avoid leaking the memory used last time. */
-  free (state.space.text);
-  free (state.word.text);
+  TEXT saved_space = state.space, saved_word = state.word;
 
-  /* Default values for formatter. */
+  /* Default values for formatter, reusing storage. */
   memset (&state, 0, sizeof (state));
+  state.space = saved_space;
+  state.word = saved_word;
+  state.space.end = state.word.end = 0;
+
   state.max = 72;
   state.indent_length_next = -1; /* Special value meaning undefined. */
   state.end_sentence = -2; /* Special value meaning undefined. */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]