summaryrefslogtreecommitdiff
path: root/gdb/elfread.c
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
commitaf425ae07ad31b16de5ca84bff750653d99f1c0f (patch)
treeb2add567e74fc5c859dcf62df98e9520d8649f62 /gdb/elfread.c
parentb01c9a38a9846d0dda93f15864f8cbe6616ef02b (diff)
downloadgdb-af425ae07ad31b16de5ca84bff750653d99f1c0f.tar.gz
* elfread.c (elf_symtab_read): Allocate correct number of tail
elements to sectinfo structure. (Fix from Woody LaRue.)
Diffstat (limited to 'gdb/elfread.c')
-rw-r--r--gdb/elfread.c10
1 files changed, 9 insertions, 1 deletions
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);