* [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).