[binutils-gdb] PR 33858 Object Attributes v2 memory leaks

Alan Modra amodra@sourceware.org
Tue Feb 10 02:00:05 GMT 2026


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7b7fd9f36112a7710201fcd88868c36935a21c39

commit 7b7fd9f36112a7710201fcd88868c36935a21c39
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Feb 10 10:34:48 2026 +1030

    PR 33858 Object Attributes v2 memory leaks
    
    It is possble for elf_object_p to hit errors after or during the loop
    processing sections with bfd_section_from_shdr.  That means we might
    have some object attributes malloc'd.  They need cleaning up in
    elf_object_p because bfd_check_format_matches only handles tidying of
    bfd_alloc memory.
    
            * elfcode.h (elf_object_p): Free object attributes on failure.

Diff:
---
 bfd/elfcode.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index d7c82f0797c..9e4ff80a02c 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -919,6 +919,11 @@ elf_object_p (bfd *abfd)
   bfd_set_error (bfd_error_wrong_format);
 
  got_no_match:
+  if (abfd->sections != NULL)
+    /* Unlike most early section processing, the object attribute v2
+       code uses bfd_malloc rather than bfd_alloc.  Free memory
+       containing attributes.  */
+    _bfd_elf_cleanup_object_attributes (abfd);
   return NULL;
 }


More information about the Binutils-cvs mailing list