PR26578, memory leak in parse_gnu_debugaltlink

Alan Modra amodra@gmail.com
Wed Sep 9 08:22:16 GMT 2020


The associated check function doesn't do anything with its "data"
param, so nothing to adjust there.

	PR 26578
	* dwarf.c (parse_gnu_debugaltlink): Don't alloc build_id_data.
	(load_separate_debug_files): Use a stack var for build_id_data.

diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 616e534849..9c141b1776 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -10353,15 +10353,10 @@ parse_gnu_debugaltlink (struct dwarf_section * section, void * data)
   if (id_len < 0x14)
     return NULL;
 
-  build_id_data = calloc (1, sizeof * build_id_data);
-  if (build_id_data == NULL)
-    return NULL;
-
+  build_id_data = (Build_id_data *) data;
   build_id_data->len = id_len;
   build_id_data->data = section->start + namelen;
 
-  * (Build_id_data **) data = build_id_data;
-
   return name;
 }
 
@@ -10750,7 +10745,7 @@ load_separate_debug_files (void * file, const char * filename)
 
   if (load_debug_section (gnu_debugaltlink, file))
     {
-      Build_id_data * build_id_data;
+      Build_id_data build_id_data;
 
       load_separate_debug_info (filename,
 				& debug_displays[gnu_debugaltlink].section,

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list