[binutils-gdb] cmdline_add_object_only_section leak

Alan Modra amodra@sourceware.org
Fri Jan 17 08:39:33 GMT 2025


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

commit 0e4207c529e605fe4a17fe71b49ffb42576d0b83
Author: Alan Modra <amodra@gmail.com>
Date:   Fri Jan 17 10:50:51 2025 +1030

    cmdline_add_object_only_section leak
    
    Free ofilename on error path.  Don't bother testing "if (foo)" before
    "free (foo)".

Diff:
---
 ld/ldlang.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/ld/ldlang.c b/ld/ldlang.c
index 2e82eef61fe..74c0271973f 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -10778,8 +10778,7 @@ cmdline_add_object_only_section (bfd_byte *contents, size_t size)
 
   /* Must be freed after bfd_close ().  */
   free (isympp);
-  if (osympp)
-    free (osympp);
+  free (osympp);
 
   if (rename (ofilename, output_filename))
     {
@@ -10791,14 +10790,15 @@ cmdline_add_object_only_section (bfd_byte *contents, size_t size)
   return;
 
 loser:
-  if (isympp)
-    free (isympp);
-  if (osympp)
-    free (osympp);
+  free (isympp);
+  free (osympp);
   if (obfd)
     bfd_close (obfd);
   if (ofilename)
-    unlink (ofilename);
+    {
+      unlink (ofilename);
+      free (ofilename);
+    }
   einfo (_("%P%F: failed to add object-only section: %s\n"), err);
 }


More information about the Binutils-cvs mailing list