* dwarf2read.c (dwarf2_build_psymtabs_hard): Check cu_header.length is
authorAndrew Cagney <cagney@redhat.com>
Wed, 10 Dec 1997 06:30:04 +0000 (06:30 +0000)
committerAndrew Cagney <cagney@redhat.com>
Wed, 10 Dec 1997 06:30:04 +0000 (06:30 +0000)
within dwarf_info_buffer not dwarf_abbrev_buffer.

gdb/ChangeLog
gdb/dwarf2read.c

index 066b65195add11f16b4b96be063f979c733fa6e7..fcc36238b1d4f19da8c5a7a46abf16340b24e171 100644 (file)
@@ -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 
index e12953d60e6af98d0e6e66cfb101a3e0c7b3423c..614ba9234a5fee66392dcb33c3edb9f4dbd44bd1 100644 (file)
@@ -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;
        }