[binutils-gdb] coff object_p memory leaks

Alan Modra amodra@sourceware.org
Mon Dec 30 13:22:00 GMT 2019


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

commit 37d5ab199b072e3cf1e8bf2a9262767c4737d256
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Dec 30 21:17:08 2019 +1030

    coff object_p memory leaks
    
    	* coffgen.c (coff_real_object_p): Free malloc'd memory on failure.

Diff:
---
 bfd/ChangeLog | 4 ++++
 bfd/coffgen.c | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 186346e..809f1ba 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,9 @@
 2019-12-30  Alan Modra  <amodra@gmail.com>
 
+	* coffgen.c (coff_real_object_p): Free malloc'd memory on failure.
+
+2019-12-30  Alan Modra  <amodra@gmail.com>
+
 	* archive.c (do_slurp_bsd_armap): Use bfd_alloc rather than
 	bfd_zalloc when memory is all written after the call.
 	(do_slurp_coff_armap): Likewise.  Set bfd_error on ridiculously
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 57a18b0..34d8d50 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -305,6 +305,9 @@ coff_real_object_p (bfd *abfd,
   return abfd->xvec;
 
  fail:
+  obj_coff_keep_syms (abfd) = FALSE;
+  obj_coff_keep_strings (abfd) = FALSE;
+  _bfd_coff_free_symbols (abfd);
   bfd_release (abfd, tdata);
  fail2:
   abfd->tdata.any = tdata_save;



More information about the Binutils-cvs mailing list