diff options
author | Nick Clifton <nickc@redhat.com> | 2018-07-25 10:56:45 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2018-07-25 10:56:45 +0100 |
commit | e3d39609d16dccfef8fd1f02090fcd1df82736df (patch) | |
tree | 1399c03846e9db283a88eabedf40a28ef397c802 /binutils/rdcoff.c | |
parent | 491993044ba6cfb2b0fc93c8b3032d5c91cccda5 (diff) | |
download | gdb-e3d39609d16dccfef8fd1f02090fcd1df82736df.zip gdb-e3d39609d16dccfef8fd1f02090fcd1df82736df.tar.gz gdb-e3d39609d16dccfef8fd1f02090fcd1df82736df.tar.bz2 |
Fix potential memory leaks in some of the binutils source files.
* rdcoff.c (parse_coff_struct_type): Free fields array upon early
exit.
(parse_coff_enum_type): Free names and vals arrays upon early
exit.
* rddbg.c (read_section_stabs_debugging_info): Free shandle and
strings and stabs arrays upon early exit.
* readelf.c (get_32bit_section_headers): Free shdrs structure upon
early exit.
(get_64bit_section_headers): Likewise.
(get_32bit_elf_symbols): Generate an error if multiple symbol
table index sections are associated with the same symbol section.
(get_64bit_elf_symbols): Likewise.
(process_dynamic_section): Generate an error if there are multiple
dynamic symbol table sections, multiple dynamic string tables or
multiple dynamic symbol information sections.
Diffstat (limited to 'binutils/rdcoff.c')
-rw-r--r-- | binutils/rdcoff.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/binutils/rdcoff.c b/binutils/rdcoff.c index cc6fec5..2f0c316 100644 --- a/binutils/rdcoff.c +++ b/binutils/rdcoff.c @@ -409,6 +409,7 @@ parse_coff_struct_type (bfd *abfd, struct coff_symbols *symbols, { non_fatal (_("bfd_coff_get_syment failed: %s"), bfd_errmsg (bfd_get_error ())); + free (fields); return DEBUG_TYPE_NULL; } @@ -425,6 +426,7 @@ parse_coff_struct_type (bfd *abfd, struct coff_symbols *symbols, { non_fatal (_("bfd_coff_get_auxent failed: %s"), bfd_errmsg (bfd_get_error ())); + free (fields); return DEBUG_TYPE_NULL; } psubaux = &auxent; @@ -514,6 +516,8 @@ parse_coff_enum_type (bfd *abfd, struct coff_symbols *symbols, { non_fatal (_("bfd_coff_get_syment failed: %s"), bfd_errmsg (bfd_get_error ())); + free (names); + free (vals); return DEBUG_TYPE_NULL; } |