mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 07:01:02 +08:00
* cplus-dem.c (demangle_signature): Recognize misplaced '_' to
avoid infinite loops while demangling bogus mangled names. * valprint.c (type_print_base): Minor fix for GNU style guide conformance.
This commit is contained in:
@ -1,3 +1,10 @@
|
||||
Mon May 11 13:27:46 1992 Fred Fish (fnf@cygnus.com)
|
||||
|
||||
* cplus-dem.c (demangle_signature): Recognize misplaced '_' to
|
||||
avoid infinite loops while demangling bogus mangled names.
|
||||
* valprint.c (type_print_base): Minor fix for GNU style guide
|
||||
conformance.
|
||||
|
||||
Sat May 9 18:02:17 1992 Fred Fish (fnf at fishpond)
|
||||
|
||||
* Makefile.in (VERSION): Bump to 4.5.3
|
||||
|
@ -481,6 +481,15 @@ demangle_signature (declp, mangled, work)
|
||||
success = demangle_template (declp, mangled, work);
|
||||
break;
|
||||
|
||||
case '_':
|
||||
/* At the outermost level, we cannot have a return type specified,
|
||||
so if we run into another '_' at this point we are dealing with
|
||||
a mangled name that is either bogus, or has been mangled by
|
||||
some algorithm we don't know how to deal with. So just
|
||||
reject the entire demangling. */
|
||||
success = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
#ifdef GNU_DEMANGLING
|
||||
/* Assume we have stumbled onto the first outermost function
|
||||
@ -497,7 +506,7 @@ demangle_signature (declp, mangled, work)
|
||||
break;
|
||||
}
|
||||
#ifdef GNU_DEMANGLING
|
||||
if (expect_func)
|
||||
if (success && expect_func)
|
||||
{
|
||||
func_done = 1;
|
||||
success = demangle_args (declp, mangled, work);
|
||||
|
Reference in New Issue
Block a user