]> granicus.if.org Git - php/commitdiff
Revert fix for bug 76813 and re2c version bump
authorChristoph M. Becker <cmbecker69@gmx.de>
Mon, 11 Jan 2021 12:10:47 +0000 (13:10 +0100)
committerChristoph M. Becker <cmbecker69@gmx.de>
Mon, 11 Jan 2021 16:19:52 +0000 (17:19 +0100)
CentOS 7 ships with re2c 0.13.5 by default, so we should not have
bumped the required re2c version to 0.13.7.  However, 0.13.5 does not
support default rules, so we cannot use them to fix bug 76813.

This reverts commit 420184ad529443182c9a348a55b1c9216005c613 and
5e15c9c41f8318a8392c2e2c78544f218736549c.

Closes GH-6593.

NEWS
configure.ac
sapi/phpdbg/phpdbg_lexer.l
sapi/phpdbg/phpdbg_parser.y
sapi/phpdbg/tests/bug76813.phpt [deleted file]

diff --git a/NEWS b/NEWS
index 69aa04f375d07ebebb9da36f7bf4260be5b7b900..1b9fd953a4625a4d1fef50e2741f47f915ced86e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -44,6 +44,9 @@ PHP                                                                        NEWS
     (david at bamsoftware, cmb)
   . Fixed bug #77565 (Incorrect locator detection in ZIP-based phars). (cmb)
 
+- Phpdbg:
+  . Reverted fix for bug #76813 (Access violation near NULL on source operand).
+    (cmb)
 
 07 Jan 2021, PHP 8.0.1
 
index e77708b9efa2ec58768fd32c0f398ba149914821..91e6ce16fed451b97bbc86878ded304aba03f616 100644 (file)
@@ -154,7 +154,7 @@ PHP_RUNPATH_SWITCH
 dnl Checks for some support/generator progs.
 PHP_PROG_AWK
 PHP_PROG_BISON([3.0.0])
-PHP_PROG_RE2C([0.13.7])
+PHP_PROG_RE2C([0.13.4])
 
 PHP_ARG_ENABLE([re2c-cgoto],
   [whether to enable computed goto gcc extension with re2c],
index e57702ba0b16732ab5596b2b69f25645439708ae..422cda4f2c076aaa18444a16f38a30f8fc778354 100644 (file)
@@ -33,7 +33,7 @@ void phpdbg_init_lexer (phpdbg_param_t *stack, char *input) {
 
        YYSETCONDITION(INITIAL);
 
-       LEX(text) = YYCURSOR = YYMARKER = (unsigned char *) input;
+       LEX(text) = YYCURSOR = (unsigned char *) input;
        LEX(len) = strlen(input);
 }
 
@@ -165,10 +165,6 @@ INPUT       ("\\"[#"']|["]("\\\\"|"\\"["]|[^\n\000"])+["]|[']("\\"[']|"\\\\"|[^\
        return T_ID;
 }
 
-<NORMAL>* {
-       return T_UNEXPECTED;
-}
-
 <RAW>{INPUT} {
        phpdbg_init_param(yylval, STR_PARAM);
        yylval->str = estrdup(yytext);
index cdfe92570e70d68441857183c771d3d94e812c77..f776586810994f208c8e38a57841c1dbdeeeb409 100644 (file)
@@ -63,13 +63,9 @@ ZEND_EXTERN_MODULE_GLOBALS(phpdbg)
 %% /* Rules */
 
 input
-       : non_empty_input { $$ = $1; }
-       | %empty
-       ;
-
-non_empty_input
        : command { $$ = $1; }
-       | non_empty_input T_SEPARATOR command { phpdbg_stack_separate($1.top); $$ = $3; }
+       | input T_SEPARATOR command { phpdbg_stack_separate($1.top); $$ = $3; }
+       | %empty
        ;
 
 command
diff --git a/sapi/phpdbg/tests/bug76813.phpt b/sapi/phpdbg/tests/bug76813.phpt
deleted file mode 100644 (file)
index 61e5e3f..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-Bug #76813 (Access_violation_near_NULL_on_source_operand)
---PHPDBG--
-"#!==)===\377\377\276\242="
-#!==)===\377\377\276\242=
---EXPECT--
-prompt> [Parse Error: syntax error, unexpected input, expecting $end]
-prompt> [Parse Error: syntax error, unexpected # (pound sign), expecting $end]
-prompt> [Parse Error: syntax error, unexpected # (pound sign), expecting $end]
-prompt>