summaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2017-09-26 16:03:10 +0100
committerNick Clifton <nickc@redhat.com>2017-09-26 16:03:10 +0100
commit262c0a877f91b9102fd42523598b46ea79a8970e (patch)
treeae323d62992028be712f7f71feb55276450f6cfe /bfd
parent00956d3a8ab1b56fcdf63aee4ed5c5a1d46a7a48 (diff)
downloadbinutils-gdb-262c0a877f91b9102fd42523598b46ea79a8970e.tar.gz
Fix an assertion failure when parsing a fuzzed x86_64 ELF binary.
PR 22172 * elf64-x86-64.c (elf_x86_64_info_to_howto): Do not trigger an assertion failure if elf_x86_64_rtype_to_howto has already issued an error message.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf64-x86-64.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0e670cdcf8e..20451d77606 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2017-09-26 Nick Clifton <nickc@redhat.com>
+
+ PR 22172
+ * elf64-x86-64.c (elf_x86_64_info_to_howto): Do not trigger an
+ assertion failure if elf_x86_64_rtype_to_howto has already issued
+ an error message.
+
2017-09-26 Alan Modra <amodra@gmail.com>
PR 22210
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 84a26033245..4b19d022598 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -344,7 +344,8 @@ elf_x86_64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr,
&& r_type != (unsigned int) R_X86_64_GNU_VTENTRY)
r_type &= ~R_X86_64_converted_reloc_bit;
cache_ptr->howto = elf_x86_64_rtype_to_howto (abfd, r_type);
- BFD_ASSERT (r_type == cache_ptr->howto->type);
+
+ BFD_ASSERT (r_type == cache_ptr->howto->type || cache_ptr->howto->type == R_X86_64_NONE);
}
/* Support for core dump NOTE sections. */