aboutsummaryrefslogtreecommitdiff
path: root/bfd/coffgen.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2022-09-24 18:14:14 +0930
committerAlan Modra <amodra@gmail.com>2022-09-26 14:23:29 +0930
commitf3bc603561c993cdb8811c361ec5e9e484628cdc (patch)
treea9f086c40f78834907e209df7bb55700a27455ae /bfd/coffgen.c
parent544c5619574318a6f9044c6aace524a9808ed1d6 (diff)
downloadgdb-f3bc603561c993cdb8811c361ec5e9e484628cdc.zip
gdb-f3bc603561c993cdb8811c361ec5e9e484628cdc.tar.gz
gdb-f3bc603561c993cdb8811c361ec5e9e484628cdc.tar.bz2
stab nearest_line bfd_malloc_and_get_section
bfd_malloc_and_get_section performs some sanity checks on the section size before allocating memory. This patch avails the stab nearest_line code of that sanity checking, and tidies up memory afterward. * coffgen.c (_bfd_coff_close_and_cleanup): Call _bfd_stab_cleanup. * elf.c (_bfd_elf_close_and_cleanup): Likewise. * syms.c (_bfd_stab_section_find_nearest_line): Set *pinfo earlier. Use bfd_malloc_and_get_section. Free malloc'd buffers on failure. Malloc indextable. (_bfd_stab_cleanup): New function. * libbfd-in.h (_bfd_stab_cleanup): Declare. * libbfd.h: Regnerate.
Diffstat (limited to 'bfd/coffgen.c')
-rw-r--r--bfd/coffgen.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 8eb69af..3e0fbc6 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -3175,7 +3175,10 @@ _bfd_coff_close_and_cleanup (bfd *abfd)
if (bfd_get_format (abfd) == bfd_object
|| bfd_get_format (abfd) == bfd_core)
- _bfd_dwarf2_cleanup_debug_info (abfd, &tdata->dwarf2_find_line_info);
+ {
+ _bfd_dwarf2_cleanup_debug_info (abfd, &tdata->dwarf2_find_line_info);
+ _bfd_stab_cleanup (abfd, &tdata->line_info);
+ }
}
return _bfd_generic_close_and_cleanup (abfd);
}