diff options
author | Alan Modra <amodra@gmail.com> | 2022-07-05 09:51:57 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2022-07-09 21:20:52 +0930 |
commit | 9f6e589719d85301caf22622c892c8bbee988e60 (patch) | |
tree | 5f17b831fb1f1271f4495e84e77b214e1d8426f3 | |
parent | 07e64e0b7c6cd4a73220eb57588d0db6b2a192e3 (diff) | |
download | gdb-9f6e589719d85301caf22622c892c8bbee988e60.zip gdb-9f6e589719d85301caf22622c892c8bbee988e60.tar.gz gdb-9f6e589719d85301caf22622c892c8bbee988e60.tar.bz2 |
free read_symbol_name string
read_symbol_name mallocs the string it returns. Free it when done.
* read.c (read_symbol_name): Free name on error path.
* config/tc-ppc.c (ppc_GNU_visibility): Free name returned from
read_symbol_name.
(ppc_extern, ppc_globl, ppc_weak): Likewise.
-rw-r--r-- | gas/config/tc-ppc.c | 4 | ||||
-rw-r--r-- | gas/read.c | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 4d789fd..5f2c416 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -4231,6 +4231,7 @@ static void ppc_GNU_visibility (int visibility) { if ((name = read_symbol_name ()) == NULL) break; symbolP = symbol_find_or_make (name); + free (name); coffsym = coffsymbol (symbol_get_bfdsym (symbolP)); coffsym->native->u.syment.n_type &= ~SYM_V_MASK; @@ -4837,6 +4838,7 @@ ppc_extern (int ignore ATTRIBUTE_UNUSED) return; sym = symbol_find_or_make (name); + free (name); if (*input_line_pointer == ',') { @@ -4872,6 +4874,7 @@ ppc_globl (int ignore ATTRIBUTE_UNUSED) return; sym = symbol_find_or_make (name); + free (name); S_SET_EXTERNAL (sym); if (*input_line_pointer == ',') @@ -4908,6 +4911,7 @@ ppc_weak (int ignore ATTRIBUTE_UNUSED) return; sym = symbol_find_or_make (name); + free (name); S_SET_WEAK (sym); if (*input_line_pointer == ',') @@ -1699,6 +1699,7 @@ read_symbol_name (void) { as_bad (_("expected symbol name")); ignore_rest_of_line (); + free (start); return NULL; } |