aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf64-sparc.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3061ae1..0a61d2e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-09 Jakub Jelinek <jakub@redhat.com>
+
+ * elf64-sparc.c (sparc64_elf_check_relocs): Don't trust reloc_count.
+ (sparc64_elf_relocate_section): Likewise.
+
2001-02-09 Mark Kettenis <kettenis@gnu.org>
* elf32-sparc.c (_bfd_sparc_elf_howto_table): Treat R_SPARC_UA32
diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c
index 7316d33..59e9f49 100644
--- a/bfd/elf64-sparc.c
+++ b/bfd/elf64-sparc.c
@@ -994,7 +994,8 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
srelgot = NULL;
sreloc = NULL;
- rel_end = relocs + sec->reloc_count;
+ rel_end = relocs + elf_section_data (sec)->rel_hdr.sh_size
+ / elf_section_data (sec)->rel_hdr.sh_entsize;
for (rel = relocs; rel < rel_end; rel++)
{
unsigned long r_symndx;
@@ -1900,7 +1901,8 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
sgot = splt = sreloc = NULL;
rel = relocs;
- relend = relocs + input_section->reloc_count;
+ relend = relocs + elf_section_data (input_section)->rel_hdr.sh_size
+ / elf_section_data (input_section)->rel_hdr.sh_entsize;
for (; rel < relend; rel++)
{
int r_type;