From 09bed9a9f53e11218be9b7c70dac516986e2ecdb Mon Sep 17 00:00:00 2001 From: James Westman Date: Thu, 28 Sep 2023 18:17:43 -0500 Subject: [PATCH] tokenizer: Fix QUOTED regex unescape_quote() assumed that a QUOTED token wouldn't end in the middle of an escape sequence, but that assumption could fail (a bug found by the fuzzer). --- blueprintcompiler/tokenizer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blueprintcompiler/tokenizer.py b/blueprintcompiler/tokenizer.py index 1ab6def..33ae272 100644 --- a/blueprintcompiler/tokenizer.py +++ b/blueprintcompiler/tokenizer.py @@ -39,8 +39,8 @@ class TokenType(Enum): _tokens = [ (TokenType.IDENT, r"[A-Za-z_][\d\w\-_]*"), - (TokenType.QUOTED, r'"(\\"|[^"\n])*"'), - (TokenType.QUOTED, r"'(\\'|[^'\n])*'"), + (TokenType.QUOTED, r'"(\\.|[^\\"\n])*"'), + (TokenType.QUOTED, r"'(\\.|[^\\'\n])*'"), (TokenType.NUMBER, r"0x[A-Za-z0-9_]+"), (TokenType.NUMBER, r"[\d_]+(\.[\d_]+)?"), (TokenType.NUMBER, r"\.[\d_]+"),