[binutils-gdb] gnu_debuglink related memory leak

Alan Modra amodra@sourceware.org
Wed Jan 1 12:46:36 GMT 2025


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

commit 822bda23f618286724e449815c8da8cde03e32e0
Author: Alan Modra <amodra@gmail.com>
Date:   Wed Jan 1 22:52:41 2025 +1030

    gnu_debuglink related memory leak
    
            * opncls.c (bfd_fill_in_gnu_debuglink_section): Free section
            contents on success too.

Diff:
---
 bfd/opncls.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/bfd/opncls.c b/bfd/opncls.c
index fb0bca7689a..a0b30f568d7 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -1768,7 +1768,7 @@ bfd_fill_in_gnu_debuglink_section (bfd *abfd,
   debuglink_size &= ~3;
   debuglink_size += 4;
 
-  contents = (char *) bfd_malloc (debuglink_size);
+  contents = bfd_malloc (debuglink_size);
   if (contents == NULL)
     {
       /* XXX Should we delete the section from the bfd ?  */
@@ -1781,14 +1781,9 @@ bfd_fill_in_gnu_debuglink_section (bfd *abfd,
 
   bfd_put_32 (abfd, crc32, contents + crc_offset);
 
-  if (! bfd_set_section_contents (abfd, sect, contents, 0, debuglink_size))
-    {
-      /* XXX Should we delete the section from the bfd ?  */
-      free (contents);
-      return false;
-    }
-
-  return true;
+  bool ret = bfd_set_section_contents (abfd, sect, contents, 0, debuglink_size);
+  free (contents);
+  return ret;
 }
 
 /* Finds the build-id associated with @var{abfd}.  If the build-id is


More information about the Binutils-cvs mailing list