Fix assertion failure in the BFD library when called to parse a file containing corrupt ELF group information.

PR 25699
	* elf.c (bfd_elf_set_group_contents): Replace assertion with an
	error return.
This commit is contained in:
Nick Clifton 2020-03-19 14:40:00 +00:00
parent fcc7376e0a
commit 6a541707f3
2 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2020-03-19 Nick Clifton <nickc@redhat.com>
PR 25699
* elf.c (bfd_elf_set_group_contents): Replace assertion with an
error return.
2020-03-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
* elfxx-riscv.c (riscv_parse_subset): Don't use C99.

View File

@ -3533,8 +3533,13 @@ bfd_elf_set_group_contents (bfd *abfd, asection *sec, void *failedptrarg)
if (symindx == 0)
{
/* If called from the assembler, swap_out_syms will have set up
elf_section_syms. */
BFD_ASSERT (elf_section_syms (abfd) != NULL);
elf_section_syms.
PR 25699: A corrupt input file could contain bogus group info. */
if (elf_section_syms (abfd) == NULL)
{
*failedptr = TRUE;
return;
}
symindx = elf_section_syms (abfd)[sec->index]->udata.i;
}
elf_section_data (sec)->this_hdr.sh_info = symindx;