From: Ilia Alshanetsky Date: Mon, 4 Dec 2006 00:39:47 +0000 (+0000) Subject: MFB: Fixed bug #39483 (Problem with handling of \ char in prepared X-Git-Tag: RELEASE_1_0_0RC1~839 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ad2b0a9fef20976a600af6ce6d3808c6474e7c48;p=php MFB: Fixed bug #39483 (Problem with handling of \ char in prepared statements). --- diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c index 66e682e127..8ed5f7c612 100644 --- a/ext/pdo/pdo_sql_parser.c +++ b/ext/pdo/pdo_sql_parser.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.10.6 on Sun Dec 3 18:28:10 2006 */ +/* Generated by re2c 0.10.6 on Sun Dec 3 19:39:21 2006 */ #line 1 "ext/pdo/pdo_sql_parser.re" /* +----------------------------------------------------------------------+ @@ -232,8 +232,8 @@ yy26: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == '\'') goto yy23; - goto yy25; + if(yych <= 0x00) goto yy25; + goto yy23; yy27: yych = *++YYCURSOR; goto yy22; @@ -274,8 +274,8 @@ yy34: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if(yych == '"') goto yy32; - goto yy25; + if(yych <= 0x00) goto yy25; + goto yy32; yy35: ++YYCURSOR; yych = *YYCURSOR; diff --git a/ext/pdo/pdo_sql_parser.re b/ext/pdo/pdo_sql_parser.re index c6bc1dc5f3..9bef98e0de 100644 --- a/ext/pdo/pdo_sql_parser.re +++ b/ext/pdo/pdo_sql_parser.re @@ -55,8 +55,8 @@ static int scan(Scanner *s) */ /*!re2c - (["] (ESCQQ|ANYNOEOF\[\\"])* ["]) { RET(PDO_PARSER_TEXT); } - (['] (ESCQ|ANYNOEOF\[\\'])* [']) { RET(PDO_PARSER_TEXT); } + (["] (ESCQQ|[\\]ANYNOEOF|ANYNOEOF\[\\"])* ["]) { RET(PDO_PARSER_TEXT); } + (['] (ESCQ|[\\]ANYNOEOF|ANYNOEOF\[\\'])* [']) { RET(PDO_PARSER_TEXT); } SPECIALS{2,} { RET(PDO_PARSER_TEXT); } BINDCHR { RET(PDO_PARSER_BIND); } QUESTION { RET(PDO_PARSER_BIND_POS); }