* xcoffread.c (MIN_TBTABSIZ): Change to 12.
authorJim Kingdon <jkingdon@engr.sgi.com>
Wed, 17 Mar 1993 19:17:47 +0000 (19:17 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Wed, 17 Mar 1993 19:17:47 +0000 (19:17 +0000)
gdb/ChangeLog
gdb/xcoffread.c

index 4da4f8bfb32b170f6253c23dbe5b1c1cf8b8d085..58e75de4e609274cfc69b00befa925af268204ed 100644 (file)
@@ -1,5 +1,7 @@
 Wed Mar 17 09:46:31 1993  Jim Kingdon  (kingdon@cygnus.com)
 
+       * xcoffread.c (MIN_TBTABSIZ): Change to 12.
+
        * xcoffread.c (xcoff_symfile_read): Only read stringtab and
        debugsec if there are a non-zero number of symbols.
 
index 84be25fb19681c1336858521808b0a93f0f2dbef..cbc2f731280f146e17cc74d7c9bdb4ee107384a5 100644 (file)
@@ -750,9 +750,6 @@ retrieve_tracebackinfo (abfd, textsec, cs)
 {
 #define TBTABLE_BUFSIZ  2000
 
-  /* Minimum buffer size to hold a traceback table.  */
-#define        MIN_TBTABSIZ    50
-                               
   static TracebackInfo tbInfo;
   struct tbtable *ptb;
 
@@ -838,11 +835,19 @@ retrieve_tracebackinfo (abfd, textsec, cs)
       /* if we don't have the whole traceback table in the buffer, re-read
          the whole thing. */
 
+      /* This is how much to read to get the traceback table.
+        8 bytes of the traceback table are always present, plus we
+        look at parminfo.  */
+#define        MIN_TBTABSIZ    12
+                               
       if ((char*)pinsn > (buffer + bufferbytes - MIN_TBTABSIZ)) {
 
        /* In case if we are *very* close to the end of the text section
           and cannot read properly from that point on, abort by returning
           NULL.
+
+          This could happen if the traceback table is only 8 bytes,
+          but we try to read 12 bytes of it.
           Handle this case more graciously -- FIXME */
 
        if (!bfd_get_section_contents (