aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/coff-sh.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 35b9d97..b1cf4f9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2017-06-21 Nick Clifton <nickc@redhat.com>
+ PR binutils/21646
+ * coff-sh.c (sh_reloc): Check for an out of range reloc.
+
+2017-06-21 Nick Clifton <nickc@redhat.com>
+
PR binutils/21639
* vms-misc.c (_bfd_vms_save_sized_string): Use unsigned int as
type of the size parameter.
diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c
index d76f98a..26d296b 100644
--- a/bfd/coff-sh.c
+++ b/bfd/coff-sh.c
@@ -596,6 +596,9 @@ sh_reloc (bfd * abfd,
&& bfd_is_und_section (symbol_in->section))
return bfd_reloc_undefined;
+ if (addr > input_section->size)
+ return bfd_reloc_outofrange;
+
sym_value = get_symbol_value (symbol_in);
switch (r_type)
@@ -2910,7 +2913,6 @@ sh_coff_get_relocated_section_contents (bfd *output_bfd,
struct internal_reloc *internal_relocs = NULL;
struct internal_syment *internal_syms = NULL;
-fprintf (stderr, "DATA = %p\n", data);
/* We only need to handle the case of relaxing, or of having a
particular set of section contents, specially. */
if (relocatable