From: Alan Modra Date: Tue, 5 Jul 2022 00:21:57 +0000 (+0930) Subject: free read_symbol_name string X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9f6e589719d85301caf22622c892c8bbee988e60;p=binutils-gdb.git 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. --- diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 4d789fd16a9..5f2c41621b4 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 == ',') diff --git a/gas/read.c b/gas/read.c index c6ce0345892..35446ff0f8b 100644 --- a/gas/read.c +++ b/gas/read.c @@ -1699,6 +1699,7 @@ read_symbol_name (void) { as_bad (_("expected symbol name")); ignore_rest_of_line (); + free (start); return NULL; }