* coffread.c (init_stringtab): When copying length to stringtab,
authorJim Kingdon <jkingdon@engr.sgi.com>
Tue, 20 Sep 1994 18:39:25 +0000 (18:39 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Tue, 20 Sep 1994 18:39:25 +0000 (18:39 +0000)
use target format, not host format, since that is what the rest of
the code assumes.

gdb/ChangeLog
gdb/coffread.c

index 8d09fc202ece5473767a8c8cce25643815d257cf..2dcb0398383b318d976573cdec6b84e3a7b7c8f2 100644 (file)
@@ -1,3 +1,9 @@
+Tue Sep 20 11:34:27 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+       * coffread.c (init_stringtab): When copying length to stringtab,
+       use target format, not host format, since that is what the rest of
+       the code assumes.
+
 Mon Sep 19 15:48:10 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)
 
        * Makefile.in: Removed prelude.o, i386-nlmstub.o, nlmstub.o,
index 0706665d52128da030be9ac81d6b546de32dadd0..9350d45cec077db314ffeda4e21a8dd40a6b106e 100644 (file)
@@ -1085,7 +1085,9 @@ init_stringtab (abfd, offset)
     return 0;
 
   stringtab = (char *) xmalloc (length);
-  memcpy (stringtab, &length, sizeof length);
+  /* This is in target format (probably not very useful, and not currently
+     used), not host format.  */
+  memcpy (stringtab, lengthbuf, sizeof lengthbuf);
   if (length == sizeof length)         /* Empty table -- just the count */
     return 0;
 
@@ -1113,6 +1115,8 @@ getsymname (symbol_entry)
 
   if (symbol_entry->_n._n_n._n_zeroes == 0)
     {
+      /* FIXME: Probably should be detecting corrupt symbol files by
+        seeing whether offset points to within the stringtab.  */
       result = stringtab + symbol_entry->_n._n_n._n_offset;
     }
   else