PR26578, memory leak in parse_gnu_debugaltlink
authorAlan Modra <amodra@gmail.com>
Wed, 9 Sep 2020 07:08:36 +0000 (16:38 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 9 Sep 2020 07:08:36 +0000 (16:38 +0930)
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.

binutils/ChangeLog
binutils/dwarf.c

index bd636c9a864e20bee5925d51901b5bc7b9da7ade..89860a0406c17b072b7a46d0622f7ea3297a5f4c 100644 (file)
@@ -1,3 +1,9 @@
+2020-09-09  Alan Modra  <amodra@gmail.com>
+
+       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.
+
 2020-09-08  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/26587
index 616e53484908ae38e5f19bd884952f373014c946..9c141b1776224106ba7e287d937b755caa609069 100644 (file)
@@ -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,