diff options
author | Nick Clifton <nickc@redhat.com> | 1997-09-17 16:52:23 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 1997-09-17 16:52:23 +0000 |
commit | db1fa6ab261fd9d5a22b8c8adec16c54dcb4b7ea (patch) | |
tree | 50b3274a81ce2a2c2e54559a4ec5fb6e1742d42d /bfd | |
parent | 8bd89725a7dfd1c709791f2d472a8cd8d35612dc (diff) | |
download | gdb-db1fa6ab261fd9d5a22b8c8adec16c54dcb4b7ea.zip gdb-db1fa6ab261fd9d5a22b8c8adec16c54dcb4b7ea.tar.gz gdb-db1fa6ab261fd9d5a22b8c8adec16c54dcb4b7ea.tar.bz2 |
Catch relocations against non-existant symbols.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-v850.c | 18 |
2 files changed, 23 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bae50f8..dd64b74 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 17 09:54:51 1997 Nick Clifton <nickc@cygnus.com> + + * elf32-v850.c (v850_elf_final_link_relocate): Add checks to catch + relocations against non-existant symbols. + Tue Sep 16 14:20:27 1997 Nick Clifton <nickc@cygnus.com> * reloc.c: Add BFR_RELOC_V850_TDA_16_16_OFFSET. diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index feb298e..d3339fb 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -945,6 +945,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd, return bfd_reloc_ok; case R_V850_ZDA_16_16_OFFSET: + if (sym_sec == NULL) + return bfd_reloc_undefined; + value -= sym_sec->output_section->vma; value += (short) bfd_get_16 (input_bfd, hit_data); @@ -955,6 +958,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd, return bfd_reloc_ok; case R_V850_ZDA_15_16_OFFSET: + if (sym_sec == NULL) + return bfd_reloc_undefined; + insn = bfd_get_16 (input_bfd, hit_data); value -= sym_sec->output_section->vma; @@ -984,6 +990,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd, return bfd_reloc_ok; case R_V850_SDA_16_16_OFFSET: + if (sym_sec == NULL) + return bfd_reloc_undefined; + { unsigned long gp; struct bfd_link_hash_entry * h; @@ -1010,6 +1019,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd, } case R_V850_SDA_15_16_OFFSET: + if (sym_sec == NULL) + return bfd_reloc_undefined; + { unsigned long gp; struct bfd_link_hash_entry * h; @@ -1218,6 +1230,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd, } case R_V850_SDA_16_16_SPLIT_OFFSET: + if (sym_sec == NULL) + return bfd_reloc_undefined; + { unsigned long gp; struct bfd_link_hash_entry * h; @@ -1252,6 +1267,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd, } case R_V850_ZDA_16_16_SPLIT_OFFSET: + if (sym_sec == NULL) + return bfd_reloc_undefined; + insn = bfd_get_32 (input_bfd, hit_data); value -= sym_sec->output_section->vma; |