coff_close_and_cleanup
Fixes leaks in _bfd_coff_get_external_symbols and _bfd_coff_read_string_table. * coffcode.h (coff_close_and_cleanup): Redefine to.. * coffgen.c (_bfd_coff_close_and_cleanup): ..this. New function. * libcoff-in.h (_bfd_coff_close_and_cleanup): Declare. * libcoff.h: Regenerate.
This commit is contained in:
parent
a6e5765ff1
commit
f5d35bb7a5
|
@ -1,3 +1,10 @@
|
|||
2019-12-29 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* coffcode.h (coff_close_and_cleanup): Redefine to..
|
||||
* coffgen.c (_bfd_coff_close_and_cleanup): ..this. New function.
|
||||
* libcoff-in.h (_bfd_coff_close_and_cleanup): Declare.
|
||||
* libcoff.h: Regenerate.
|
||||
|
||||
2019-12-29 Hannes Domani <ssbssa@yahoo.de>
|
||||
Alan Modra <amodra@gmail.com>
|
||||
|
||||
|
|
|
@ -5642,7 +5642,7 @@ static bfd_coff_backend_data bigobj_swap_table =
|
|||
#endif /* COFF_WITH_PE_BIGOBJ */
|
||||
|
||||
#ifndef coff_close_and_cleanup
|
||||
#define coff_close_and_cleanup _bfd_generic_close_and_cleanup
|
||||
#define coff_close_and_cleanup _bfd_coff_close_and_cleanup
|
||||
#endif
|
||||
|
||||
#ifndef coff_bfd_free_cached_info
|
||||
|
|
|
@ -3161,3 +3161,18 @@ bfd_coff_group_name (bfd *abfd, const asection *sec)
|
|||
return ci->name;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bfd_boolean
|
||||
_bfd_coff_close_and_cleanup (bfd *abfd)
|
||||
{
|
||||
if (abfd->format == bfd_object
|
||||
&& bfd_family_coff (abfd)
|
||||
&& coff_data (abfd) != NULL)
|
||||
{
|
||||
obj_coff_keep_syms (abfd) = FALSE;
|
||||
obj_coff_keep_strings (abfd) = FALSE;
|
||||
if (!_bfd_coff_free_symbols (abfd))
|
||||
return FALSE;
|
||||
}
|
||||
return _bfd_generic_close_and_cleanup (abfd);
|
||||
}
|
||||
|
|
|
@ -367,6 +367,8 @@ extern bfd_vma bfd_coff_reloc16_get_value
|
|||
(arelent *, struct bfd_link_info *, asection *);
|
||||
extern void bfd_perform_slip
|
||||
(bfd *, unsigned int, asection *, bfd_vma);
|
||||
extern bfd_boolean _bfd_coff_close_and_cleanup
|
||||
(bfd *);
|
||||
|
||||
/* Functions and types in cofflink.c. */
|
||||
|
||||
|
|
|
@ -371,6 +371,8 @@ extern bfd_vma bfd_coff_reloc16_get_value
|
|||
(arelent *, struct bfd_link_info *, asection *);
|
||||
extern void bfd_perform_slip
|
||||
(bfd *, unsigned int, asection *, bfd_vma);
|
||||
extern bfd_boolean _bfd_coff_close_and_cleanup
|
||||
(bfd *);
|
||||
|
||||
/* Functions and types in cofflink.c. */
|
||||
|
||||
|
|
Loading…
Reference in New Issue