summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIndu Bhagat <indu.bhagat@oracle.com>2022-12-09 10:25:46 -0800
committerIndu Bhagat <indu.bhagat@oracle.com>2022-12-09 10:25:46 -0800
commited38cbc331efbfe65def811773e68c431bfbcc75 (patch)
treebd1ca2e38fdad16c34b9e4477f4d5da3e1056389
parentb659fb35854e49ac16a5538d24bf0e3f0d6e6121 (diff)
downloadbinutils-gdb-ed38cbc331efbfe65def811773e68c431bfbcc75.tar.gz
objdump: sframe: fix memory leaks
ChangeLog: * binutils/objdump.c (dump_section_sframe): free up contents and SFrame decoder context on exit.
-rw-r--r--binutils/objdump.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/binutils/objdump.c b/binutils/objdump.c
index d95c8b68bf0..6695c5d343f 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -4871,12 +4871,18 @@ dump_section_sframe (bfd *abfd ATTRIBUTE_UNUSED,
/* Decode the contents of the section. */
sfd_ctx = sframe_decode ((const char*)sframe_data, sf_size, &err);
if (!sfd_ctx)
- bfd_fatal (bfd_get_filename (abfd));
+ {
+ free (sframe_data);
+ bfd_fatal (bfd_get_filename (abfd));
+ }
printf (_("Contents of the SFrame section %s:"),
sanitize_string (sect_name));
/* Dump the contents as text. */
dump_sframe (sfd_ctx, sf_vma);
+
+ free (sframe_data);
+ sframe_decoder_free (&sfd_ctx);
}