* 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:
Fred Fish
1992-05-11 20:32:03 +00:00
parent a7a8c21eb4
commit 7fd31a8480
2 changed files with 17 additions and 1 deletions

View File

@ -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

View File

@ -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);