asan: more readelf leaks

Alan Modra amodra@gmail.com
Sat Mar 14 09:53:16 GMT 2020


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.

diff --git a/binutils/readelf.c b/binutils/readelf.c
index 0f8a0809c5..49eb20f28c 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;

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list