Stop the BFD library from failing when encountering a second set of relocs for the same section.

PR 24456
	* elf.c (bfd_section_from_shdr): Issue an informative warning
	message and continue processing other sections after encountering
	a reloc section for a section which already has other relocs
	associated with it.
This commit is contained in:
Nick Clifton 2019-08-23 13:22:02 +01:00
parent 2600d80ccd
commit a7ba389645
2 changed files with 19 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2019-08-23 Nick Clifton <nickc@redhat.com>
PR 24456
* elf.c (bfd_section_from_shdr): Issue an informative warning
message and continue processing other sections after encountering
a reloc section for a section which already has other relocs
associated with it.
2019-08-23 Alan Modra <amodra@gmail.com>
PR 24933

View File

@ -2466,9 +2466,18 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
else
p_hdr = &esdt->rel.hdr;
/* PR 17512: file: 0b4f81b7. */
/* PR 17512: file: 0b4f81b7.
Also see PR 24456, for a file which deliberately has two reloc
sections. */
if (*p_hdr != NULL)
goto fail;
{
_bfd_error_handler
/* xgettext:c-format */
(_("%pB: warning: multiple relocation sections for section %pA \
found - ignoring all but the first"),
abfd, target_sect);
goto success;
}
hdr2 = (Elf_Internal_Shdr *) bfd_alloc (abfd, sizeof (*hdr2));
if (hdr2 == NULL)
goto fail;