From: Markus Armbruster Date: Fri, 28 Apr 2023 10:54:15 +0000 (+0200) Subject: qapi: Fix crash on stray double quote character X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=5b5fe0e018891dc08bcce75f064015c42aeb46a4;p=qemu.git qapi: Fix crash on stray double quote character When the lexer chokes on a stray character, its shows the characters until the next structural character in the error message. It uses a regular expression to match a non-empty string of non-structural characters. Bug: the regular expression treats '"' as structural. When the lexer chokes on '"', the match fails, and trips must_match()'s assertion. Fix the regular expression. Fixes: 14c32795024c (qapi: Improve reporting of lexical errors) Signed-off-by: Markus Armbruster Message-Id: <20230428105429.1687850-4-armbru@redhat.com> Reviewed-by: Juan Quintela --- diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py index 878f90b458..7b49d3ab05 100644 --- a/scripts/qapi/parser.py +++ b/scripts/qapi/parser.py @@ -346,7 +346,7 @@ class QAPISchemaParser: elif not self.tok.isspace(): # Show up to next structural, whitespace or quote # character - match = must_match('[^[\\]{}:,\\s\'"]+', + match = must_match('[^[\\]{}:,\\s\']+', self.src[self.cursor-1:]) raise QAPIParseError(self, "stray '%s'" % match.group(0))