aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/dwarf2read.c5
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;
}