summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2003-12-27 13:52:51 +0000
committerMark Kettenis <kettenis@gnu.org>2003-12-27 13:52:51 +0000
commitcbca9d1594ae480a703a2d13c42913b0cc779ed9 (patch)
tree7de0de12b702a07160fe295acbde176c00bcf69b
parente1f97c6c809b0823a5686b43b9277786fb81382c (diff)
downloadgdb-cbca9d1594ae480a703a2d13c42913b0cc779ed9.tar.gz
Merge from mainline:
2003-10-31 Jim Blandy <jimb@redhat.com> * elfread.c (elf_symtab_read): Allocate correct number of tail elements to sectinfo structure. (Fix from Woody LaRue.)
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/elfread.c10
2 files changed, 18 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0bc595710f3..fd4bd86bc2b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
2003-12-27 Mark Kettenis <kettenis@gnu.org>
+ Merge from mainline:
+
+ 2003-10-31 Jim Blandy <jimb@redhat.com>
+
+ * elfread.c (elf_symtab_read): Allocate correct number of tail
+ elements to sectinfo structure. (Fix from Woody LaRue.)
+
+2003-12-27 Mark Kettenis <kettenis@gnu.org>
+
* config/sparc/nbsd64.mh (NATDEPFILES): Add sparc64-nat.o.
* Makefile.in (sparc64fbsd-tdep.o): Update dependencies.
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 8c278107d37..9ac30aeeb9f 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -398,9 +398,17 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
= max (SECT_OFF_BSS (objfile),
max (SECT_OFF_DATA (objfile),
SECT_OFF_RODATA (objfile)));
+
+ /* max_index is the largest index we'll
+ use into this array, so we must
+ allocate max_index+1 elements for it.
+ However, 'struct stab_section_info'
+ already includes one element, so we
+ need to allocate max_index aadditional
+ elements. */
size = (sizeof (struct stab_section_info)
+ (sizeof (CORE_ADDR)
- * (max_index - 1)));
+ * max_index));
sectinfo = (struct stab_section_info *)
xmmalloc (objfile->md, size);
memset (sectinfo, 0, size);