From 262c0a877f91b9102fd42523598b46ea79a8970e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 26 Sep 2017 16:03:10 +0100 Subject: [PATCH] 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. --- bfd/ChangeLog | 7 +++++++ bfd/elf64-x86-64.c | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0e670cdcf8..20451d7760 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2017-09-26 Nick Clifton + + 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 PR 22210 diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 84a2603324..4b19d02259 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. */