Skip to content

Commit 9e548af

Browse files
Fix #12851 fuzzing crash in Tokenizer::simplifyTypedef() (#6535)
1 parent 3410d1b commit 9e548af

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

lib/tokenize.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,10 @@ namespace {
860860
Token::createMutualLinks(tok3->next(), after->previous());
861861
}
862862
}
863+
if (!after) {
864+
mReplaceFailed = true;
865+
return;
866+
}
863867

864868
bool useAfterVarRange = true;
865869
if (Token::simpleMatch(mRangeAfterVar.first, "[")) {
@@ -1124,7 +1128,9 @@ void Tokenizer::simplifyTypedef()
11241128
{
11251129
// remove typedefs
11261130
for (auto &t: typedefs) {
1127-
if (!t.second.replaceFailed()) {
1131+
if (t.second.replaceFailed()) {
1132+
syntaxError(t.second.getTypedefToken());
1133+
} else {
11281134
const Token* const typedefToken = t.second.getTypedefToken();
11291135
TypedefInfo typedefInfo;
11301136
typedefInfo.name = t.second.name();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
typedef q r[];r A

0 commit comments

Comments
 (0)