Fix an illegal call to free() when copying a PE format file.

PR 25447
	* coffgen.c (_bfd_coff_close_and_cleanup): Do not clear the keep
	syms and keep strings flags as these may have been set in order to
	prevent a bogus call to free.
This commit is contained in:
Nick Clifton 2020-01-24 13:19:48 +00:00
parent 42cd72aa02
commit caa31cfad6
2 changed files with 11 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2020-01-24 Nick Clifton <nickc@redhat.com>
PR 25447
* coffgen.c (_bfd_coff_close_and_cleanup): Do not clear the keep
syms and keep strings flags as these may have been set in order to
prevent a bogus call to free.
2020-01-23 Nick Clifton <nickc@redhat.com>
* po/fr.po: Updated French translation.

View File

@ -3175,8 +3175,10 @@ _bfd_coff_close_and_cleanup (bfd *abfd)
&& bfd_family_coff (abfd)
&& coff_data (abfd) != NULL)
{
obj_coff_keep_syms (abfd) = FALSE;
obj_coff_keep_strings (abfd) = FALSE;
/* 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))
return FALSE;
}