[binutils-gdb] Re: binary outsymbols

Alan Modra amodra@sourceware.org
Sat Jan 18 00:31:19 GMT 2025


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

commit 26dd9cb647140db87a5a530fd9f044d356e081de
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Jan 18 10:55:22 2025 +1030

    Re: binary outsymbols
    
    The "of course to free outsymbols" turned out to be wrong.  outsymbols
    belongs to objcopy which frees them, so commit 6ca01b0bdd59 introduced
    a double free.
    
            * srec.c (srec_write_symbols): Don't free outsymbols.
            * tekhex.c (tekhex_write_object_contents): Likewise.

Diff:
---
 bfd/srec.c   | 4 ----
 bfd/tekhex.c | 4 ----
 2 files changed, 8 deletions(-)

diff --git a/bfd/srec.c b/bfd/srec.c
index a7ccf232531..1509bebd6c1 100644
--- a/bfd/srec.c
+++ b/bfd/srec.c
@@ -1114,13 +1114,9 @@ srec_write_symbols (bfd *abfd)
 	goto fail;
     }
 
-  free (abfd->outsymbols);
-  abfd->outsymbols = NULL;
   return true;
 
  fail:
-  free (abfd->outsymbols);
-  abfd->outsymbols = NULL;
   return false;
 }
 
diff --git a/bfd/tekhex.c b/bfd/tekhex.c
index ef2bb25fe46..aab0b2f5592 100644
--- a/bfd/tekhex.c
+++ b/bfd/tekhex.c
@@ -886,13 +886,9 @@ tekhex_write_object_contents (bfd *abfd)
   /* And the terminator.  */
   if (bfd_write ("%0781010\n", 9, abfd) != 9)
     goto fail;
-  free (abfd->outsymbols);
-  abfd->outsymbols = NULL;
   return true;
 
  fail:
-  free (abfd->outsymbols);
-  abfd->outsymbols = NULL;
   return false;
 }


More information about the Binutils-cvs mailing list