diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index d4107884642..b6528d9a9e6 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -1508,7 +1508,10 @@ void SymbolDatabase::createSymbolDatabaseIncompleteVars() continue; } if (tok->str() == "using") { - tok = Token::findsimplematch(tok, ";"); + Token* usingEnd = Token::findsimplematch(tok, ";"); + if (!usingEnd) + mTokenizer.syntaxError(tok); + tok = usingEnd; continue; } } diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 952ba4b6c00..134c1f06500 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -8940,6 +8940,8 @@ void Tokenizer::findGarbageCode() const syntaxError(tok); if (Token::Match(tok, ": [)]=]")) syntaxError(tok); + if (Token::simpleMatch(tok, ", :")) + syntaxError(tok); if (Token::Match(tok, "typedef [,;:]")) syntaxError(tok); if (Token::Match(tok, "!|~ %comp%") && diff --git a/test/cli/fuzz-crash/crash-04f8bc02d0683e12579485090f4a2cbc55d3c955 b/test/cli/fuzz-crash/crash-04f8bc02d0683e12579485090f4a2cbc55d3c955 new file mode 100644 index 00000000000..1e6a05d0ae6 --- /dev/null +++ b/test/cli/fuzz-crash/crash-04f8bc02d0683e12579485090f4a2cbc55d3c955 @@ -0,0 +1 @@ +b f(){using e} \ No newline at end of file diff --git a/test/cli/fuzz-crash/crash-3de394576af6f9f7ca95bdd282075d06f980252f b/test/cli/fuzz-crash/crash-3de394576af6f9f7ca95bdd282075d06f980252f new file mode 100644 index 00000000000..7122cb87302 --- /dev/null +++ b/test/cli/fuzz-crash/crash-3de394576af6f9f7ca95bdd282075d06f980252f @@ -0,0 +1 @@ +t o(){for(u*e,:c)t c=e;} \ No newline at end of file