From cbca9d1594ae480a703a2d13c42913b0cc779ed9 Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Sat, 27 Dec 2003 13:52:51 +0000 Subject: Merge from mainline: 2003-10-31 Jim Blandy * elfread.c (elf_symtab_read): Allocate correct number of tail elements to sectinfo structure. (Fix from Woody LaRue.) --- gdb/ChangeLog | 9 +++++++++ gdb/elfread.c | 10 +++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0bc595710f3..fd4bd86bc2b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2003-12-27 Mark Kettenis + + Merge from mainline: + + 2003-10-31 Jim Blandy + + * elfread.c (elf_symtab_read): Allocate correct number of tail + elements to sectinfo structure. (Fix from Woody LaRue.) + 2003-12-27 Mark Kettenis * config/sparc/nbsd64.mh (NATDEPFILES): Add sparc64-nat.o. 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); -- cgit v1.2.1