Skip to content

Commit 105ea18

Browse files
Fix #13706 fuzzing crash (assert) in TemplateSimplifier::TokenAndName::TokenAndName() (danmar#8102)
Co-authored-by: chrchr-github <noreply@github.com>
1 parent 574fffa commit 105ea18

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

lib/templatesimplifier.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,8 @@ TemplateSimplifier::TokenAndName::TokenAndName(Token *token, std::string scope,
219219
}
220220

221221
// make sure at most only one family flag is set
222-
assert(isClass() ? !(isFunction() || isVariable()) : true);
223-
assert(isFunction() ? !(isClass() || isVariable()) : true);
224-
assert(isVariable() ? !(isClass() || isFunction()) : true);
222+
if (isClass() + isFunction() + isVariable() > 1)
223+
syntaxError(token);
225224

226225
if (mToken)
227226
mToken->templateSimplifierPointer(this);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
template<>struct t<>();

0 commit comments

Comments
 (0)