From 354bab1b34dbddb731d7c292625e2abb6f6ead87 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Wed, 2 Oct 2024 20:29:20 +0200 Subject: [PATCH] Fix GH-16174: Empty string is an invalid expression for phpdbg-ev Strings may be empty, so we must not assume they are not. --- sapi/phpdbg/phpdbg_lexer.l | 2 +- sapi/phpdbg/tests/gh16174.phpt | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 sapi/phpdbg/tests/gh16174.phpt diff --git a/sapi/phpdbg/phpdbg_lexer.l b/sapi/phpdbg/phpdbg_lexer.l index eb159bdef1c7a..6245262a00598 100644 --- a/sapi/phpdbg/phpdbg_lexer.l +++ b/sapi/phpdbg/phpdbg_lexer.l @@ -82,7 +82,7 @@ ID [^ \r\n\t:#\000]+ GENERIC_ID ([^ \r\n\t:#\000"']|":\\")+|["]([^\n\000"\\]|"\\\\"|"\\"["])+["]|[']([^\n\000'\\]|"\\\\"|"\\"['])+['] ADDR [0][x][a-fA-F0-9]+ OPCODE (ZEND_|zend_)([A-Z_a-z])+ -INPUT ("\\"[#"']|["]("\\\\"|"\\"["]|[^\n\000"])+["]|[']("\\"[']|"\\\\"|[^\n\000'])+[']|[^\n\000#"'])+ +INPUT ("\\"[#"']|["]("\\\\"|"\\"["]|[^\n\000"])*["]|[']("\\"[']|"\\\\"|[^\n\000'])*[']|[^\n\000#"'])+ := yyleng = (size_t) YYCURSOR - (size_t) yytext; diff --git a/sapi/phpdbg/tests/gh16174.phpt b/sapi/phpdbg/tests/gh16174.phpt new file mode 100644 index 0000000000000..f108cd66be9a2 --- /dev/null +++ b/sapi/phpdbg/tests/gh16174.phpt @@ -0,0 +1,10 @@ +--TEST-- +GH-16174 (Empty string is an invalid expression for phpdbg-ev) +--PHPDBG-- +ev $e = "" +ev $f = '' +--EXPECT-- +prompt> +prompt> +prompt> +prompt>