aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2020-03-17 17:02:15 +0000
committerNick Clifton <nickc@redhat.com>2020-03-17 17:02:15 +0000
commit327ef784ba105f067f5c1d587908259d7aabb971 (patch)
tree53a9080f38c3060cb5218a02e6fbccc05546968b
parent68e52bc7ecfbfdc8d5f85716a8ac7668e211f360 (diff)
downloadgdb-327ef784ba105f067f5c1d587908259d7aabb971.zip
gdb-327ef784ba105f067f5c1d587908259d7aabb971.tar.gz
gdb-327ef784ba105f067f5c1d587908259d7aabb971.tar.bz2
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.
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf.c28
-rw-r--r--gas/ChangeLog25
-rw-r--r--opcodes/ChangeLog5
4 files changed, 59 insertions, 5 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 515ab02..461ce20 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,11 @@
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
* elf.c (_bfd_elf_slurp_secondary_reloc_section): Remove redundant
free. Add free on another failure path.
diff --git a/bfd/elf.c b/bfd/elf.c
index 2a299f1..6aaa96f 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -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;
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 8bc4b3a..0263362 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 3be58d5..3e94736 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -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 ...