2007-07-26 Michael Snyder <msnyder@access-company.com>

* coffgen.c (_bfd_coff_read_internal_relocs): If internal_relocs
	are not to be cached, free the temporary buffer.
This commit is contained in:
Michael Snyder 2007-07-26 18:43:24 +00:00
parent 078c4bfc87
commit 44c62d9e24
2 changed files with 16 additions and 8 deletions

View File

@ -1,5 +1,8 @@
2007-07-26 Michael Snyder <msnyder@access-company.com>
* coffgen.c (_bfd_coff_read_internal_relocs): If internal_relocs
are not to be cached, free the temporary buffer.
* aoutx.h (slurp_reloc_table): Return TRUE if reloc_size == zero
or count == zero.

View File

@ -457,17 +457,22 @@ _bfd_coff_read_internal_relocs (bfd *abfd,
free_external = NULL;
}
if (cache && free_internal != NULL)
if (free_internal != NULL)
{
if (coff_section_data (abfd, sec) == NULL)
if (cache)
free (free_internal);
else
{
amt = sizeof (struct coff_section_tdata);
sec->used_by_bfd = bfd_zalloc (abfd, amt);
if (sec->used_by_bfd == NULL)
goto error_return;
coff_section_data (abfd, sec)->contents = NULL;
if (coff_section_data (abfd, sec) == NULL)
{
amt = sizeof (struct coff_section_tdata);
sec->used_by_bfd = bfd_zalloc (abfd, amt);
if (sec->used_by_bfd == NULL)
goto error_return;
coff_section_data (abfd, sec)->contents = NULL;
}
coff_section_data (abfd, sec)->relocs = free_internal;
}
coff_section_data (abfd, sec)->relocs = free_internal;
}
return internal_relocs;