Fix seg-fault when running garbage collection on coff binaries.

PR ld/20401
	* coffgen.c (fini_reloc_cookie_rels): Check for the extistence
	of the coff_section_data before using it.
This commit is contained in:
Nick Clifton 2016-07-27 10:49:32 +01:00
parent 7fca8e8ff7
commit 147d994bcd
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2016-07-27 Ozkan Sezer <sezeroz@gmail.com>
Nick Clifton <nickc@redhat.com>
PR ld/20401
* coffgen.c (fini_reloc_cookie_rels): Check for the extistence
of the coff_section_data before using it.
2016-07-26 Maciej W. Rozycki <macro@imgtec.com>
* elfxx-mips.c (mips_elf_calculate_relocation): Handle branches

View File

@ -2691,7 +2691,13 @@ static void
fini_reloc_cookie_rels (struct coff_reloc_cookie *cookie,
asection *sec)
{
if (cookie->rels && coff_section_data (NULL, sec)->relocs != cookie->rels)
if (cookie->rels
/* PR 20401. The relocs may not have been cached, so check first.
If the relocs were loaded by init_reloc_cookie_rels() then this
will be the case. FIXME: Would performance be improved if the
relocs *were* cached ? */
&& coff_section_data (NULL, sec)
&& coff_section_data (NULL, sec)->relocs != cookie->rels)
free (cookie->rels);
}