[binutils-gdb] score-elf binutils-all/strip-13 fail

Alan Modra amodra@sourceware.org
Wed Jan 6 10:34:57 GMT 2021


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=599c86c4a57c10c456663fadd8dfb21cbbcafe57

commit 599c86c4a57c10c456663fadd8dfb21cbbcafe57
Author: Alan Modra <amodra@gmail.com>
Date:   Wed Jan 6 16:40:31 2021 +1030

    score-elf binutils-all/strip-13 fail
    
            * elf32-score.c (s3_bfd_score_info_to_howto): Report an error
            on unknown r_type.
            * elf32-score7.c (s7_bfd_score_info_to_howto): Likewise.

Diff:
---
 bfd/ChangeLog      |  6 ++++++
 bfd/elf32-score.c  | 10 ++++++++--
 bfd/elf32-score7.c | 10 ++++++++--
 3 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b9b5f7b2d38..06d6e393060 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2021-01-06  Alan Modra  <amodra@gmail.com>
+
+	* elf32-score.c (s3_bfd_score_info_to_howto): Report an error
+	on unknown r_type.
+	* elf32-score7.c (s7_bfd_score_info_to_howto): Likewise.
+
 2021-01-06  Alan Modra  <amodra@gmail.com>
 
 	* config.bfd (sparc-*-solaris2*): Add sparc_elf32_vec.
diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c
index ee20d4cd489..50c7405c32a 100644
--- a/bfd/elf32-score.c
+++ b/bfd/elf32-score.c
@@ -2379,7 +2379,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto,
 
 /* Score backend functions.  */
 static bfd_boolean
-s3_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
+s3_bfd_score_info_to_howto (bfd *abfd,
 			    arelent *bfd_reloc,
 			    Elf_Internal_Rela *elf_reloc)
 {
@@ -2387,7 +2387,13 @@ s3_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
 
   r_type = ELF32_R_TYPE (elf_reloc->r_info);
   if (r_type >= ARRAY_SIZE (elf32_score_howto_table))
-    return FALSE;
+    {
+      /* xgettext:c-format */
+      _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+			  abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
 
   bfd_reloc->howto = &elf32_score_howto_table[r_type];
   return TRUE;
diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c
index 06e8f5083e7..2f63ab8cd5b 100644
--- a/bfd/elf32-score7.c
+++ b/bfd/elf32-score7.c
@@ -2218,7 +2218,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto,
 /* Score backend functions.  */
 
 bfd_boolean
-s7_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
+s7_bfd_score_info_to_howto (bfd *abfd,
 			    arelent *bfd_reloc,
 			    Elf_Internal_Rela *elf_reloc)
 {
@@ -2226,7 +2226,13 @@ s7_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
 
   r_type = ELF32_R_TYPE (elf_reloc->r_info);
   if (r_type >= ARRAY_SIZE (elf32_score_howto_table))
-    return FALSE;
+    {
+      /* xgettext:c-format */
+      _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+			  abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
 
   bfd_reloc->howto = &elf32_score_howto_table[r_type];
   return TRUE;


More information about the Binutils-cvs mailing list