[binutils-gdb] coff-alpha memory leak

Alan Modra amodra@sourceware.org
Fri Dec 20 09:57:00 GMT 2019


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

commit fcc5d04f9264b75241fc50cf655a49c9a7de7d76
Author: Alan Modra <amodra@gmail.com>
Date:   Fri Dec 20 10:01:03 2019 +1030

    coff-alpha memory leak
    
    	* coff-alpha.c (alpha_ecoff_read_ar_hdr): Free ar_hdr on error return.

Diff:
---
 bfd/ChangeLog    | 4 ++++
 bfd/coff-alpha.c | 5 ++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index dc264de..c399eac 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2019-12-20  Alan Modra  <amodra@gmail.com>
+
+	* coff-alpha.c (alpha_ecoff_read_ar_hdr): Free ar_hdr on error return.
+
 2019-12-18  Alan Modra  <amodra@gmail.com>
 
 	* coff-rs6000.c (_bfd_xcoff_slurp_armap): Don't overflow when
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index d36921b..fe7fcb1 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -2026,7 +2026,10 @@ alpha_ecoff_read_ar_hdr (bfd *abfd)
       if (bfd_seek (abfd, (file_ptr) FILHSZ, SEEK_CUR) != 0
 	  || bfd_bread (ab, (bfd_size_type) 8, abfd) != 8
 	  || bfd_seek (abfd, (file_ptr) (- (FILHSZ + 8)), SEEK_CUR) != 0)
-	return NULL;
+	{
+	  free (ret);
+	  return NULL;
+	}
 
       ret->parsed_size = H_GET_64 (abfd, ab);
     }



More information about the Binutils-cvs mailing list