diff options
author | Alan Modra <amodra@gmail.com> | 2020-03-14 18:58:11 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-03-14 20:23:52 +1030 |
commit | 1bd6175ae79099173c1510d209ad9978129e22c0 (patch) | |
tree | ff205dcc70e9b08e22c00db25bee99c0caf32724 /binutils/readelf.c | |
parent | 2ac70237d2458fb2eb5e73de6bb02a396b5bada0 (diff) | |
download | gdb-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.c | 2 |
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; |