From 6bcba24eb02e063b8584b4b327ba2f00e768137f 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. Closes GH-16177. --- NEWS | 3 +++ sapi/phpdbg/phpdbg_lexer.l | 2 +- sapi/phpdbg/tests/gh16174.phpt | 10 ++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 sapi/phpdbg/tests/gh16174.phpt diff --git a/NEWS b/NEWS index 55ffb0a1e1a..2862a321672 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,9 @@ PHP NEWS . Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if curl_multi_add_handle fails). (timwolla) +- PHPDBG: + . Fixed bug GH-16174 (Empty string is an invalid expression for ev). (cmb) + - XMLReader: . Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c). (nielsdos) diff --git a/sapi/phpdbg/phpdbg_lexer.l b/sapi/phpdbg/phpdbg_lexer.l index eb159bdef1c..6245262a005 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 00000000000..f108cd66be9 --- /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>