From 6c357e0de594b0dd341a05d94b11616113668f7e Mon Sep 17 00:00:00 2001 From: chrchr-github Date: Tue, 18 Jun 2024 20:53:15 +0200 Subject: [PATCH] Fix #12852 fuzzing crash in getEnumType() --- lib/tokenize.cpp | 2 ++ .../fuzz-crash/crash-772965250be2580c7c52f024c15fd5c8a9bb13c7 | 1 + 2 files changed, 3 insertions(+) create mode 100644 test/cli/fuzz-crash/crash-772965250be2580c7c52f024c15fd5c8a9bb13c7 diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index bc5d1c7443f..3580cda4008 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -8681,6 +8681,8 @@ void Tokenizer::findGarbageCode() const syntaxError(tok); if (Token::Match(tok, "%assign% [;)}]") && (!cpp || !Token::simpleMatch(tok->previous(), "operator"))) syntaxError(tok); + if (Token::Match(tok, "; %assign%")) + syntaxError(tok); if (Token::Match(tok, "%cop%|=|,|[ %or%|%oror%|/|%")) syntaxError(tok); if (Token::Match(tok, "[;([{] %comp%|%oror%|%or%|%|/")) diff --git a/test/cli/fuzz-crash/crash-772965250be2580c7c52f024c15fd5c8a9bb13c7 b/test/cli/fuzz-crash/crash-772965250be2580c7c52f024c15fd5c8a9bb13c7 new file mode 100644 index 00000000000..a010a5fcfcc --- /dev/null +++ b/test/cli/fuzz-crash/crash-772965250be2580c7c52f024c15fd5c8a9bb13c7 @@ -0,0 +1 @@ +enum{C=e;=U}; \ No newline at end of file