cp-demangle (d_print_comp_inner): Guard against a NULL 'typed_name'.

* cp-demangle (d_print_comp_inner): Guard against a NULL 'typed_name'.
    * testsuite/demangle-expected: Add testcase.

From-SVN: r270695
This commit is contained in:
Ben L 2019-04-30 14:22:41 +00:00 committed by Jeff Law
parent 927e42fd52
commit 80024f3180
3 changed files with 14 additions and 6 deletions

View File

@ -1,5 +1,8 @@
2019-04-30 Ben L <bobsayshilol@live.co.uk>
* cp-demangle (d_print_comp_inner): Guard against a NULL 'typed_name'.
* testsuite/demangle-expected: Add testcase.
* cp-demangle.c (d_encoding): Guard against NULL return values from
d_right (dc).
* testsuite/demangle-expected: Add testcase.

View File

@ -4767,12 +4767,8 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
typed_name = d_right (typed_name);
if (typed_name->type == DEMANGLE_COMPONENT_DEFAULT_ARG)
typed_name = typed_name->u.s_unary_num.sub;
if (typed_name == NULL)
{
d_print_error (dpi);
return;
}
while (is_fnqual_component_type (typed_name->type))
while (typed_name != NULL
&& is_fnqual_component_type (typed_name->type))
{
if (i >= sizeof adpm / sizeof adpm[0])
{
@ -4791,6 +4787,11 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
typed_name = d_left (typed_name);
}
if (typed_name == NULL)
{
d_print_error (dpi);
return;
}
}
/* If typed_name is a template, then it applies to the

View File

@ -77,6 +77,10 @@ _ZmmAtl
_ZZaSFvOEES_
_ZZaSFvOEES_
_ZZaSFvOEES_
# Could crash
_ZZeqFvOEES_z
_ZZeqFvOEES_z
#
# demangler/80513 Test for bogus characters after __thunk_