PR binutils/22875: IQ2000/ELF: Prevent an out-of-bounds howto table access
[deliverable/binutils-gdb.git] / bfd / coff-h8500.c
index 8a72af6928491e0c575cbc37489d86d3370c5f42..a73fd46c2ebdbd9e3f6f410f7869b9581e33b4ff 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for Renesas H8/500 COFF binaries.
-   Copyright (C) 1993-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
    Written by Steve Chamberlain, <sac@cygnus.com>.
 
@@ -244,14 +244,11 @@ extra_case (bfd *in_abfd,
                                    word and the pc's been incremented.  */
 
        if (gap > 128 || gap < -128)
-         {
-           if (! ((*link_info->callbacks->reloc_overflow)
-                  (link_info, NULL,
-                   bfd_asymbol_name (*reloc->sym_ptr_ptr),
-                   reloc->howto->name, reloc->addend, input_section->owner,
-                   input_section, reloc->address)))
-             abort ();
-         }
+         (*link_info->callbacks->reloc_overflow)
+           (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr),
+            reloc->howto->name, reloc->addend, input_section->owner,
+            input_section, reloc->address);
+
        bfd_put_8 (in_abfd, gap, data + *dst_ptr);
        (*dst_ptr)++;
        (*src_ptr)++;
@@ -268,14 +265,11 @@ extra_case (bfd *in_abfd,
                                    word and the pc's been incremented.  */
 
        if (gap > 32767 || gap < -32768)
-         {
-           if (! ((*link_info->callbacks->reloc_overflow)
-                  (link_info, NULL,
-                   bfd_asymbol_name (*reloc->sym_ptr_ptr),
-                   reloc->howto->name, reloc->addend, input_section->owner,
-                   input_section, reloc->address)))
-             abort ();
-         }
+         (*link_info->callbacks->reloc_overflow)
+           (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr),
+            reloc->howto->name, reloc->addend, input_section->owner,
+            input_section, reloc->address);
+
        bfd_put_16 (in_abfd, (bfd_vma) gap, data + *dst_ptr);
        (*dst_ptr) += 2;
        (*src_ptr) += 2;
This page took 0.035559 seconds and 4 git commands to generate.