bfdtest1 segfaults on hppa-hp-hpux10
The archive element cache needs tidying when closing an archive element. This patch fixes these failures: -FAIL: ar long file names (bfdtest1) -FAIL: ar thin archive (bfdtest1) -FAIL: ar thin archive with nested archive (bfdtest1) * som.c (som_bfd_free_cached_info): Call _bfd_generic_close_and_cleanup.
This commit is contained in:
parent
22c6ccb89e
commit
4decd602d8
@ -1,3 +1,8 @@
|
||||
2019-05-22 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* som.c (som_bfd_free_cached_info): Call
|
||||
_bfd_generic_close_and_cleanup.
|
||||
|
||||
2019-05-21 Faraz Shahbazker <fshahbazker@wavecomp.com>
|
||||
|
||||
* elfxx-mips.c (_bfd_mips_elf_check_relocs): Generate error
|
||||
|
||||
30
bfd/som.c
30
bfd/som.c
@ -6695,25 +6695,25 @@ som_write_armap (bfd *abfd,
|
||||
static bfd_boolean
|
||||
som_bfd_free_cached_info (bfd *abfd)
|
||||
{
|
||||
asection *o;
|
||||
|
||||
if (bfd_get_format (abfd) != bfd_object)
|
||||
return TRUE;
|
||||
if (bfd_get_format (abfd) == bfd_object)
|
||||
{
|
||||
asection *o;
|
||||
|
||||
#define FREE(x) if (x != NULL) { free (x); x = NULL; }
|
||||
/* Free the native string and symbol tables. */
|
||||
FREE (obj_som_symtab (abfd));
|
||||
FREE (obj_som_stringtab (abfd));
|
||||
for (o = abfd->sections; o != NULL; o = o->next)
|
||||
{
|
||||
/* Free the native relocations. */
|
||||
o->reloc_count = (unsigned) -1;
|
||||
FREE (som_section_data (o)->reloc_stream);
|
||||
/* Do not free the generic relocations as they are objalloc'ed. */
|
||||
}
|
||||
/* Free the native string and symbol tables. */
|
||||
FREE (obj_som_symtab (abfd));
|
||||
FREE (obj_som_stringtab (abfd));
|
||||
for (o = abfd->sections; o != NULL; o = o->next)
|
||||
{
|
||||
/* Free the native relocations. */
|
||||
o->reloc_count = (unsigned) -1;
|
||||
FREE (som_section_data (o)->reloc_stream);
|
||||
/* Do not free the generic relocations as they are objalloc'ed. */
|
||||
}
|
||||
#undef FREE
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return _bfd_generic_close_and_cleanup (abfd);
|
||||
}
|
||||
|
||||
/* End of miscellaneous support functions. */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user