cp-demangle.c (d_encoding): Guard against NULL return values from d_right (dc).

* cp-demangle.c (d_encoding): Guard against NULL return values from
     d_right (dc).
     * testsuite/demangle-expected: Add testcase.

From-SVN: r270694
This commit is contained in:
Ben L 2019-04-30 14:20:11 +00:00 committed by Jeff Law
parent 5bcc5a3b28
commit 927e42fd52
3 changed files with 19 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2019-04-30 Ben L <bobsayshilol@live.co.uk>
* cp-demangle.c (d_encoding): Guard against NULL return values from
d_right (dc).
* testsuite/demangle-expected: Add testcase.
2019-04-29 Ben L <bobsayshilol@live.co.uk>
* cp-demangle.c (d_expression_1): Don't peek ahead unless the current

View File

@ -1330,8 +1330,14 @@ d_encoding (struct d_info *di, int top_level)
really apply here; this happens when parsing a class
which is local to a function. */
if (dc->type == DEMANGLE_COMPONENT_LOCAL_NAME)
while (is_fnqual_component_type (d_right (dc)->type))
d_right (dc) = d_left (d_right (dc));
{
while (d_right (dc) != NULL
&& is_fnqual_component_type (d_right (dc)->type))
d_right (dc) = d_left (d_right (dc));
if (d_right (dc) == NULL)
dc = NULL;
}
}
else
{

View File

@ -72,6 +72,11 @@ _Q8ccQ4M2e.
_ZmmAtl
_ZmmAtl
# Could crash
--no-params
_ZZaSFvOEES_
_ZZaSFvOEES_
_ZZaSFvOEES_
#
# demangler/80513 Test for bogus characters after __thunk_