From 0118219e1850a05ceb181a4f47a6906c01c17c83 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 5 Mar 2018 14:31:05 +1030 Subject: [PATCH] mips64 rtype_to_howto error status * elf64-mips.c (mips_elf64_rtype_to_howto): Return NULL on error. (mips_elf64_slurp_one_reloc_table): Pass on error. --- bfd/ChangeLog | 5 +++++ bfd/elf64-mips.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6e20330223..09fae15d21 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2018-03-07 Alan Modra + + * elf64-mips.c (mips_elf64_rtype_to_howto): Return NULL on error. + (mips_elf64_slurp_one_reloc_table): Pass on error. + 2018-03-03 James Cowgill Maciej W. Rozycki diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index ea2e921474..9501613d25 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -3611,7 +3611,7 @@ mips_elf64_rtype_to_howto (bfd *abfd, unsigned int r_type, bfd_boolean rela_p) _bfd_error_handler (_("%pB: unsupported relocation type %#x"), abfd, r_type); bfd_set_error (bfd_error_bad_value); - r_type = R_MIPS_NONE; + return NULL; } if (rela_p) return &mips_elf64_howto_table_rela[r_type]; @@ -3800,6 +3800,8 @@ mips_elf64_slurp_one_reloc_table (bfd *abfd, asection *asect, relent->addend = rela.r_addend; relent->howto = mips_elf64_rtype_to_howto (abfd, type, rela_p); + if (relent->howto == NULL) + goto error_return; ++relent; }