aboutsummaryrefslogtreecommitdiff
path: root/bfd/cofflink.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-07-22 00:29:35 +0000
committerIan Lance Taylor <ian@airs.com>1999-07-22 00:29:35 +0000
commit75987f837d86a482443aab3c68a8b84afc600ce5 (patch)
tree35e3b29dfabbba96fd45a565f695253ef2898ed4 /bfd/cofflink.c
parent0691c3ca1faffb9bb822bf11c3513c18bb98d87b (diff)
downloadfsf-binutils-gdb-75987f837d86a482443aab3c68a8b84afc600ce5.zip
fsf-binutils-gdb-75987f837d86a482443aab3c68a8b84afc600ce5.tar.gz
fsf-binutils-gdb-75987f837d86a482443aab3c68a8b84afc600ce5.tar.bz2
1999-07-21 Philippe De Muyter <phdm@macqel.be>
* cofflink.c (_bfd_coff_generic_relocate_section): Issue an error message and fail if a symbol index is out of range.
Diffstat (limited to 'bfd/cofflink.c')
-rw-r--r--bfd/cofflink.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 994cea4..679e7a8 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -2603,6 +2603,14 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
h = NULL;
sym = NULL;
}
+ else if (symndx < 0
+ || (unsigned long) symndx >= obj_raw_syment_count (input_bfd))
+ {
+ (*_bfd_error_handler)
+ ("%s: illegal symbol index %ld in relocs",
+ bfd_get_filename (input_bfd), symndx);
+ return false;
+ }
else
{
h = obj_coff_sym_hashes (input_bfd)[symndx];