[binutils-gdb] readelf/objdump remember_state memory leaks

Alan Modra amodra@sourceware.org
Fri Jun 9 06:10:19 GMT 2023


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

commit ca5321d49ae1b6d1ec91d4ff79e85dc8ec30576a
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Jun 8 19:58:45 2023 +0930

    readelf/objdump remember_state memory leaks
    
            * dwarf.c (display_debug_frames <DW_CFA_restore_state>): Do free
            invalid remember_state.

Diff:
---
 binutils/dwarf.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 8a20bf2a349..4f695bf2bca 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -9823,12 +9823,14 @@ display_debug_frames (struct dwarf_section *section,
 		    {
 		      warn (_("Invalid column number in saved frame state\n"));
 		      fc->ncols = 0;
-		      break;
 		    }
-		  memcpy (fc->col_type, rs->col_type,
-			  rs->ncols * sizeof (*rs->col_type));
-		  memcpy (fc->col_offset, rs->col_offset,
-			  rs->ncols * sizeof (*rs->col_offset));
+		  else
+		    {
+		      memcpy (fc->col_type, rs->col_type,
+			      rs->ncols * sizeof (*rs->col_type));
+		      memcpy (fc->col_offset, rs->col_offset,
+			      rs->ncols * sizeof (*rs->col_offset));
+		    }
 		  free (rs->col_type);
 		  free (rs->col_offset);
 		  free (rs);


More information about the Binutils-cvs mailing list