aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2003-10-31 22:47:48 +0000
committerJim Blandy <jimb@codesourcery.com>2003-10-31 22:47:48 +0000
commite372db49888f31dc07c4ae379b6e7a922ae49e20 (patch)
treec9df754ef5f75a9690826ccf135ce7e5d4ecb7c0
parente8bcf01f1b65ef438a40698ce2e2a116d9fc3767 (diff)
downloadgdb-e372db49888f31dc07c4ae379b6e7a922ae49e20.zip
gdb-e372db49888f31dc07c4ae379b6e7a922ae49e20.tar.gz
gdb-e372db49888f31dc07c4ae379b6e7a922ae49e20.tar.bz2
* elfread.c (elf_symtab_read): Allocate correct number of tail
elements to sectinfo structure. (Fix from Woody LaRue.)
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/elfread.c10
2 files changed, 14 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c97c0dd..a53260a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+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-10-31 Andrew Cagney <cagney@redhat.com>
* stack.c (return_command): Use get_frame_type, instead of
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 8c27810..9ac30ae 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);