Skip to content

Commit d3d8d8e

Browse files
committed
Fix #13502, #13708 fuzzing crashes
1 parent 46cc3b9 commit d3d8d8e

3 files changed

Lines changed: 6 additions & 0 deletions

File tree

lib/templatesimplifier.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,8 @@ bool TemplateSimplifier::getTemplateDeclarations()
690690
else if (Token::Match(tok2, "{|=|;")) {
691691
const int namepos = getTemplateNamePosition(parmEnd);
692692
if (namepos > 0) {
693+
if (!tok->scopeInfo())
694+
mTokenizer.syntaxError(tok);
693695
TokenAndName decl(tok, tok->scopeInfo()->name, parmEnd->tokAt(namepos), parmEnd);
694696
if (decl.isForwardDeclaration()) {
695697
// Declaration => add to mTemplateForwardDeclarations
@@ -3983,6 +3985,8 @@ void TemplateSimplifier::simplifyTemplates(const std::time_t maxtime)
39833985
if (it->isSpecialization()) {
39843986
// delete the "template < >"
39853987
Token * tok = it->token();
3988+
if (!tok)
3989+
mTokenizer.syntaxError(it->nameToken());
39863990
tok->deleteNext(2);
39873991
tok->deleteThis();
39883992
} else {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
template<>e<t<{{template<>t<e>(){}}}>(){}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{template<>i}template<>fact2(){fact2<3>()}

0 commit comments

Comments
 (0)