diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 066b651..fcc3623 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Wed Dec 10 15:54:00 1997 Andrew Cagney <cagney@b1.cygnus.com> + + * dwarf2read.c (dwarf2_build_psymtabs_hard): Check + cu_header.length is within dwarf_info_buffer not + dwarf_abbrev_buffer. + Mon Dec 8 15:51:45 1997 Keith Seitz <keiths@onions.cygnus.com> * gdbtk.c (gdb_get_tracepoint_info): use info in struct diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index e12953d..614ba92 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -937,9 +937,10 @@ dwarf2_build_psymtabs_hard (objfile, section_offsets, mainline) error ("Dwarf Error: bad offset in compilation unit header."); return; } - if (cu_header.length > dwarf_abbrev_size - cu_header.abbrev_offset) + if (beg_of_comp_unit + cu_header.length + 4 + >= dwarf_info_buffer + dwarf_info_size) { - error ("Dwarf Error: bad length in compilation unit header."); + error ("Dwarf Error: bad length in compilation unit header."); return; } |