X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Felf32-ft32.c;h=b8e69e5a2484b24312ab1bd9d4473280a2022e84;hb=af76fcf70f55a95a310ee0bbfa76518a625b466d;hp=86157d86b9f0dd5ababaf9268d98fa377ffac64f;hpb=219d1afa89d0d53ca93a684cac341f16470f3ca0;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf32-ft32.c b/bfd/elf32-ft32.c index 86157d86b9..b8e69e5a24 100644 --- a/bfd/elf32-ft32.c +++ b/bfd/elf32-ft32.c @@ -1,8 +1,8 @@ /* ft32-specific support for 32-bit ELF. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Copied from elf32-moxie.c which is.. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -292,16 +292,25 @@ ft32_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, const char *r_name) /* Set the howto pointer for an FT32 ELF reloc. */ -static void -ft32_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, +static bfd_boolean +ft32_info_to_howto_rela (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst) { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - BFD_ASSERT (r_type < (unsigned int) R_FT32_max); + if (r_type >= (unsigned int) R_FT32_max) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } + cache_ptr->howto = & ft32_elf_howto_table [r_type]; + return cache_ptr->howto != NULL; } /* Relocate an FT32 ELF section. @@ -380,7 +389,7 @@ ft32_elf_relocate_section (bfd *output_bfd, name = bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name); - name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name; + name = name == NULL ? bfd_section_name (sec) : name; } else {