From: Nick Clifton Date: Mon, 29 Apr 2013 08:33:51 +0000 (+0000) Subject: * elf64-aarch64.c (elf64_aarch64_check_relocs): Move relocation X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7fcfd62ddcaf55a68737baf108e3a7fe3764736e;p=binutils-gdb.git * elf64-aarch64.c (elf64_aarch64_check_relocs): Move relocation error check up and add error message. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 12a44f48f1a..14abe010a8f 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2013-04-29 Will Newton + + * elf64-aarch64.c (elf64_aarch64_check_relocs): Move relocation + error check up and add error message. + 2013-04-26 Will Newton * elf64-aarch64.c (elf64_aarch64_check_relocs): Remove dead code. diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c index 9a6d8b4a6af..e3cae956501 100644 --- a/bfd/elf64-aarch64.c +++ b/bfd/elf64-aarch64.c @@ -4306,6 +4306,14 @@ elf64_aarch64_relocate_section (bfd *output_bfd, bfd_reloc.howto = elf64_aarch64_howto_from_type (r_type); howto = bfd_reloc.howto; + if (howto == NULL) + { + (*_bfd_error_handler) + (_("%B: unrecognized relocation (0x%x) in section `%A'"), + input_bfd, input_section, r_type); + return FALSE; + } + h = NULL; sym = NULL; sec = NULL; @@ -4330,12 +4338,6 @@ elf64_aarch64_relocate_section (bfd *output_bfd, return FALSE; } - if (r_type >= R_AARCH64_dyn_max) - { - bfd_set_error (bfd_error_bad_value); - return FALSE; - } - relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel); } else