forked from Imagelibrary/binutils-gdb
PR26239, memory leak in _bfd_dwarf2_slurp_debug_info
PR 26239 * coffgen.c (_bfd_coff_close_and_cleanup): Free dwarf2 info.
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
2020-07-15 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 26239
|
||||
* coffgen.c (_bfd_coff_close_and_cleanup): Free dwarf2 info.
|
||||
|
||||
2020-07-15 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR26240
|
||||
|
||||
@@ -3141,16 +3141,22 @@ bfd_coff_group_name (bfd *abfd, const asection *sec)
|
||||
bfd_boolean
|
||||
_bfd_coff_close_and_cleanup (bfd *abfd)
|
||||
{
|
||||
if (abfd->format == bfd_object
|
||||
&& bfd_family_coff (abfd)
|
||||
&& coff_data (abfd) != NULL)
|
||||
struct coff_tdata *tdata = coff_data (abfd);
|
||||
|
||||
if (tdata != NULL)
|
||||
{
|
||||
/* PR 25447:
|
||||
Do not clear the keep_syms and keep_strings flags.
|
||||
These may have been set by pe_ILF_build_a_bfd() indicating
|
||||
that the syms and strings pointers are not to be freed. */
|
||||
if (!_bfd_coff_free_symbols (abfd))
|
||||
if (bfd_get_format (abfd) == bfd_object
|
||||
&& bfd_family_coff (abfd)
|
||||
&& !_bfd_coff_free_symbols (abfd))
|
||||
return FALSE;
|
||||
|
||||
if (bfd_get_format (abfd) == bfd_object
|
||||
|| bfd_get_format (abfd) == bfd_core)
|
||||
_bfd_dwarf2_cleanup_debug_info (abfd, &tdata->dwarf2_find_line_info);
|
||||
}
|
||||
return _bfd_generic_close_and_cleanup (abfd);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user