* dwarf2read (dwarf2_build_psymtabs_hard): Doc fix.
authorJim Blandy <jimb@codesourcery.com>
Thu, 5 Jul 2001 16:45:48 +0000 (16:45 +0000)
committerJim Blandy <jimb@codesourcery.com>
Thu, 5 Jul 2001 16:45:48 +0000 (16:45 +0000)
gdb/ChangeLog
gdb/dwarf2read.c

index 4b2c4fca54094b01a3da3f59d035fc41400be3d8..da288126228eada64972ca8327aa791d6e8b2a6f 100644 (file)
@@ -1,3 +1,7 @@
+2001-07-05  Jim Blandy  <jimb@redhat.com>
+
+       * dwarf2read (dwarf2_build_psymtabs_hard): Doc fix.
+
 2001-07-05  Mark Kettenis  <kettenis@gnu.org>
 
        * config/i386/xm-go32.h (HOST_I386): Removed.
index f398686877165be6de1204d042412f0bee02b91e..a3ca771eef537f48285aec38246431c15e61dfd4 100644 (file)
@@ -980,6 +980,19 @@ dwarf2_build_psymtabs_hard (struct objfile *objfile, int mainline)
   obstack_init (&dwarf2_tmp_obstack);
   back_to = make_cleanup (dwarf2_free_tmp_obstack, NULL);
 
+  /* Since the objects we're extracting from dwarf_info_buffer vary in
+     length, only the individual functions to extract them (like
+     read_comp_unit_head and read_partial_die) can really know whether
+     the buffer is large enough to hold another complete object.
+
+     At the moment, they don't actually check that.  If
+     dwarf_info_buffer holds just one extra byte after the last
+     compilation unit's dies, then read_comp_unit_head will happily
+     read off the end of the buffer.  read_partial_die is similarly
+     casual.  Those functions should be fixed.
+
+     For this loop condition, simply checking whether there's any data
+     left at all should be sufficient.  */
   while (info_ptr < dwarf_info_buffer + dwarf_info_size)
     {
       struct comp_unit_head cu_header;