aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiemo Seufer <ths@networkno.de>2007-04-28 22:31:45 +0000
committerThiemo Seufer <ths@networkno.de>2007-04-28 22:31:45 +0000
commit9ddf830930edc617edef434411cd68d44ed46962 (patch)
tree650c889760c2de683e4ce78ec65a276188431446
parent02ffd3e486f00ec80d6fdd4395045f02ee8569bb (diff)
downloadgdb-9ddf830930edc617edef434411cd68d44ed46962.zip
gdb-9ddf830930edc617edef434411cd68d44ed46962.tar.gz
gdb-9ddf830930edc617edef434411cd68d44ed46962.tar.bz2
* elfxx-mips.c (mips_elf_create_dynamic_relocation): Don't access
memory which we might not own.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elfxx-mips.c11
2 files changed, 12 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index fb5af0b..17109fe 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-28 Sergey Rogozhkin <rogozhkin@niisi.msk.ru>
+
+ * elfxx-mips.c (mips_elf_create_dynamic_relocation): Don't access
+ memory which we might not own.
+
2007-04-27 Bob Wilson <bob.wilson@acm.org>
* elf32-xtensa.c (elf_xtensa_make_sym_local): Restore deleted function.
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 5b93d1b..d01b3e9 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -4786,10 +4786,13 @@ mips_elf_create_dynamic_relocation (bfd *output_bfd,
outrel[0].r_offset =
_bfd_elf_section_offset (output_bfd, info, input_section, rel[0].r_offset);
- outrel[1].r_offset =
- _bfd_elf_section_offset (output_bfd, info, input_section, rel[1].r_offset);
- outrel[2].r_offset =
- _bfd_elf_section_offset (output_bfd, info, input_section, rel[2].r_offset);
+ if (ABI_64_P (output_bfd))
+ {
+ outrel[1].r_offset =
+ _bfd_elf_section_offset (output_bfd, info, input_section, rel[1].r_offset);
+ outrel[2].r_offset =
+ _bfd_elf_section_offset (output_bfd, info, input_section, rel[2].r_offset);
+ }
if (outrel[0].r_offset == MINUS_ONE)
/* The relocation field has been deleted. */