Replace a couple of assertions in the BFD library that can be triggered by attempts to parse corrupt input files.

PR 25633
	* elf.c (_bfd_elf_copy_special_section_fields): Replace assertions
	with error messages.
This commit is contained in:
Nick Clifton 2020-03-17 17:02:15 +00:00
parent 68e52bc7ec
commit 327ef784ba
4 changed files with 59 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2020-03-17 Nick Clifton <nickc@redhat.com>
PR 25633
* elf.c (_bfd_elf_copy_special_section_fields): Replace assertions
with error messages.
2020-03-17 Nick Clifton <nickc@redhat.com>
PR 25687

View File

@ -12592,13 +12592,31 @@ _bfd_elf_copy_special_section_fields (const bfd * ibfd ATTRIBUTE_UNUSED,
}
/* Find the output section that corresponds to the isection's sh_info link. */
BFD_ASSERT (isection->sh_info > 0
&& isection->sh_info < elf_numsections (ibfd));
if (isection->sh_info == 0
|| isection->sh_info >= elf_numsections (ibfd))
{
_bfd_error_handler
/* xgettext:c-format */
(_("%pB(%pA): info section index is invalid"),
obfd, osec);
bfd_set_error (bfd_error_bad_value);
return FALSE;
}
isection = elf_elfsections (ibfd)[isection->sh_info];
BFD_ASSERT (isection != NULL);
BFD_ASSERT (isection->bfd_section != NULL);
BFD_ASSERT (isection->bfd_section->output_section != NULL);
if (isection == NULL
|| isection->bfd_section == NULL
|| isection->bfd_section->output_section == NULL)
{
_bfd_error_handler
/* xgettext:c-format */
(_("%pB(%pA): info section index cannot be set because the section is not in the output"),
obfd, osec);
bfd_set_error (bfd_error_bad_value);
return FALSE;
}
osection->sh_info =
elf_section_data (isection->bfd_section->output_section)->this_idx;

View File

@ -1,3 +1,28 @@
2020-03-17 Sergey Belyashov <sergey.belyashov@gmail.com>
PR 25641
PR 25668
PR 25633
Fix disassembling ED+A4/AC/B4/BC opcodes.
Fix assembling lines containing colonless label and instruction
with first operand inside parentheses.
Fix registration of unsupported by target CPU registers.
* config/tc-z80.c: See above.
* config/tc-z80.h: See above.
* testsuite/gas/z80/colonless.d: Update test.
* testsuite/gas/z80/colonless.s: Likewise.
* testsuite/gas/z80/ez80_adl_all.d: Likewise.
* testsuite/gas/z80/ez80_unsup_regs.d: Likewise.
* testsuite/gas/z80/ez80_z80_all.d: Likewise.
* testsuite/gas/z80/gbz80_unsup_regs.d: Likewise.
* testsuite/gas/z80/r800_unsup_regs.d: Likewise.
* testsuite/gas/z80/unsup_regs.s: Likewise.
* testsuite/gas/z80/z180_unsup_regs.d: Likewise.
* testsuite/gas/z80/z80.exp: Likewise.
* testsuite/gas/z80/z80_strict_unsup_regs.d: Likewise.
* testsuite/gas/z80/z80_unsup_regs.d: Likewise.
* testsuite/gas/z80/z80n_unsup_regs.d: Likewise.
2020-03-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
PR 25660

View File

@ -1,3 +1,8 @@
2020-03-17 Sergey Belyashov <sergey.belyashov@gmail.com>
PR 25641
* z80-dis.c: Fix disassembling ED+A4/AC/B4/BC opcodes.
2020-03-13 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (X86_64_0D): Rename to ...