NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: toolchain/59549: gdb is not ctype(3) safe



> #7  0x00000000006d15f9 in symbol_find_demangled_name () at /usr/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/symtab.c:961

   948    if (gsymbol->language () != language_unknown)
   949      {
   950        const struct language_defn *lang = language_def (gsymbol->language ());
   951  
   952        lang->sniff_from_mangled_name (mangled, &demangled);
   953        return demangled;
   954      }
   955  
   956    for (i = language_unknown; i < nr_languages; ++i)
   957      {
   958        enum language l = (enum language) i;
   959        const struct language_defn *lang = language_def (l);
   960  
=> 961        if (lang->sniff_from_mangled_name (mangled, &demangled))

If gdb doesn't know the language _of this symbol_ for demangling, it
will try all the languages' demangling methods, whether or not there's
any specific reason for Ada to be involved in this.

We should just patch gdb locally and file an upstream bug, basic case
of clear undefined behaviour that is triggered in real-world use.
Christos's patch looks fine to me (but I did not check whether there
are any missing cases).

I suggest filing a separate PR for the wip/Guitar issue.


Home | Main Index | Thread Index | Old Index