aboutsummaryrefslogtreecommitdiff
path: root/binutils/readelf.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-03-14 18:58:11 +1030
committerAlan Modra <amodra@gmail.com>2020-03-14 20:23:52 +1030
commit1bd6175ae79099173c1510d209ad9978129e22c0 (patch)
treeff205dcc70e9b08e22c00db25bee99c0caf32724 /binutils/readelf.c
parent2ac70237d2458fb2eb5e73de6bb02a396b5bada0 (diff)
downloadgdb-1bd6175ae79099173c1510d209ad9978129e22c0.zip
gdb-1bd6175ae79099173c1510d209ad9978129e22c0.tar.gz
gdb-1bd6175ae79099173c1510d209ad9978129e22c0.tar.bz2
Re: asan: more readelf leaks
In git commit fd486f32d15e I put some static variables used by get_symbol_for_build_attribute in a file scope ba_cache struct. This was to prevent leaks in get_symbol_for_build_attribute, and to tidy up before readelf exited. The patch wasn't quite right though. When readelf processes more than one file it was possible to double free arrays allocated in get_symbol_for_build_attribute. * readelf.c (process_file): Clean ba_cache.
Diffstat (limited to 'binutils/readelf.c')
-rw-r--r--binutils/readelf.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 0f8a080..49eb20f 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -20571,7 +20571,9 @@ process_file (char * file_name)
free (filedata);
free (ba_cache.strtab);
+ ba_cache.strtab = NULL;
free (ba_cache.symtab);
+ ba_cache.symtab = NULL;
ba_cache.filedata = NULL;
return ret;