pdb: _bfd_generic_close_and_cleanup
authorAlan Modra <amodra@gmail.com>
Fri, 23 Sep 2022 01:56:18 +0000 (11:26 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 23 Sep 2022 02:26:04 +0000 (11:56 +0930)
commit22997c77b024c3ee4e6618b44c44dc0f0179add8
tree4487199972fee3b4c7940ba44648ee724aa414d5
parent4bea06d73c04cd4c78765fa8a9a5fe8346c5ed90
pdb: _bfd_generic_close_and_cleanup

Every format that might appear inside a generic archive needs to call
_bfd_generic_close_and_cleanup, so that the archive element lookup
htab can be tidied on closing an element.  Otherwise you get stale
entries in the htab pointing at freed and perhaps reused memory,
resulting in segfaults when the archive is closed.

Calling _bfd_generic_close_and_cleanup on close means tdata needs to
be set up too, since pdb claims to be of format bfd_archive.

* pdb.c (pdb_close_and_cleanup): Define as
_bfd_generic_close_and_cleanup.
(pdb_archive_p): Set up tdata for bfd_archive format.
bfd/pdb.c