public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb] Avoid memory leak in chew
@ 2023-02-19  3:46 Alan Modra
  0 siblings, 0 replies; only message in thread
From: Alan Modra @ 2023-02-19  3:46 UTC (permalink / raw)
  To: bfd-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=85fc5801281d38897b652b298d35074b7b73ed3a

commit 85fc5801281d38897b652b298d35074b7b73ed3a
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Feb 15 16:09:35 2023 -0700

    Avoid memory leak in chew
    
    An earlier patch of mine introduced a memory leak in chew.  The bug
    was that the new "variable" word didn't free the following word.  This
    patch fixes it by arranging to transfer ownership of the name to the
    variable itself.
    
            * doc/chew.c (add_variable): New function, from
            add_intrinsic_variable.
            (add_intrinsic_variable): Call add_variable.
            (compile): Call add_variable.

Diff:
---
 bfd/doc/chew.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/bfd/doc/chew.c b/bfd/doc/chew.c
index 19e3781bdda..cd399697abd 100644
--- a/bfd/doc/chew.c
+++ b/bfd/doc/chew.c
@@ -1241,9 +1241,9 @@ add_intrinsic (char *name, void (*func) (void))
 }
 
 static void
-add_intrinsic_variable (char *name, intptr_t *loc)
+add_variable (char *name, intptr_t *loc)
 {
-  dict_type *new_d = newentry (xstrdup (name));
+  dict_type *new_d = newentry (name);
   pcu p = { push_variable };
   add_to_definition (new_d, p);
   p.l = (intptr_t) loc;
@@ -1252,6 +1252,12 @@ add_intrinsic_variable (char *name, intptr_t *loc)
   add_to_definition (new_d, p);
 }
 
+static void
+add_intrinsic_variable (const char *name, intptr_t *loc)
+{
+  add_variable (xstrdup (name), loc);
+}
+
 void
 compile (char *string)
 {
@@ -1333,7 +1339,7 @@ compile (char *string)
 	    continue;
 	  intptr_t *loc = xmalloc (sizeof (intptr_t));
 	  *loc = 0;
-	  add_intrinsic_variable (word, loc);
+	  add_variable (word, loc);
 	  string = nextword (string, &word);
 	}
       else

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-02-19  3:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-19  3:46 [binutils-gdb] Avoid memory leak in chew Alan Modra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).