From: Jim Kingdon Date: Tue, 6 Apr 1993 20:08:50 +0000 (+0000) Subject: * xcoffread.c (read_xcoff_symtab): Deal correctly with symbols of X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=786757a9a4e43e7c67931c920f306b86f22bc229;p=binutils-gdb.git * xcoffread.c (read_xcoff_symtab): Deal correctly with symbols of exactly 8 characters. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4533c5db8eb..243cee83a08 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Tue Apr 6 09:54:29 1993 Jim Kingdon (kingdon@cygnus.com) + + * xcoffread.c (read_xcoff_symtab): Deal correctly with symbols of + exactly 8 characters. + Tue Apr 6 10:31:26 1993 Stu Grossman (grossman@cygnus.com) * configure.in: Sparclite uses sparc config dir. Also has it's diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index cbe5f2cc56d..443b19f58a3 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -1064,6 +1064,16 @@ read_xcoff_symtab (objfile, nsyms) pointed to by cs->c_name will persist throughout xcoffread. If we use the new field, it gets overwritten for each symbol. */ cs->c_name = ((struct external_syment *)raw_symbol)->e.e_name; + /* If it's exactly 8 characters long it isn't '\0'-terminated. */ + if (cs->c_name[7] != '\0') + { + char *p; + p = obstack_alloc (&objfile->symbol_obstack, 9); + strncpy (p, cs->c_name, 8); + p[8] = '\0'; + cs->c_name = p; + symname_alloced = 1; + } } else if (symbol->n_sclass & 0x80) { cs->c_name = debugsec + symbol->n_offset; symname_alloced = 0;