diff options
-rw-r--r-- | bfd/coff-mcore.c | 8 | ||||
-rw-r--r-- | bfd/coff-sh.c | 7 |
2 files changed, 13 insertions, 2 deletions
diff --git a/bfd/coff-mcore.c b/bfd/coff-mcore.c index e360d5e..96a1c9d 100644 --- a/bfd/coff-mcore.c +++ b/bfd/coff-mcore.c @@ -434,7 +434,13 @@ coff_mcore_relocate_section (bfd * output_bfd, my_name = "*unknown*"; else if ( sym->_n._n_n._n_zeroes == 0 && sym->_n._n_n._n_offset != 0) - my_name = obj_coff_strings (input_bfd) + sym->_n._n_n._n_offset; + { + if (sym->_n._n_n._n_offset < obj_coff_strings_len (input_bfd)) + my_name = (obj_coff_strings (input_bfd) + + sym->_n._n_n._n_offset); + else + my_name = "?"; + } else { strncpy (buf, sym->_n._n_name, SYMNMLEN); diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c index 50e9043..14f502e 100644 --- a/bfd/coff-sh.c +++ b/bfd/coff-sh.c @@ -2866,7 +2866,12 @@ sh_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, name = NULL; else if (sym->_n._n_n._n_zeroes == 0 && sym->_n._n_n._n_offset != 0) - name = obj_coff_strings (input_bfd) + sym->_n._n_n._n_offset; + { + if (sym->_n._n_n._n_offset < obj_coff_strings_len (input_bfd)) + name = obj_coff_strings (input_bfd) + sym->_n._n_n._n_offset; + else + name = "?"; + } else { strncpy (buf, sym->_n._n_name, SYMNMLEN); |