]> granicus.if.org Git - php/commitdiff
MFB: Fixed bug #39483 (Problem with handling of \ char in prepared
authorIlia Alshanetsky <iliaa@php.net>
Mon, 4 Dec 2006 00:39:47 +0000 (00:39 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 4 Dec 2006 00:39:47 +0000 (00:39 +0000)
statements).

ext/pdo/pdo_sql_parser.c
ext/pdo/pdo_sql_parser.re

index 66e682e12719e02d43191a97ab2f8f3193b86126..8ed5f7c612a4ec66deaf87559d083ece603373e0 100644 (file)
@@ -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;
index c6bc1dc5f3e4bc922ddf6d17cfeb9d75c38b0672..9bef98e0de0d2b508ebfb73056172e74374cee4c 100644 (file)
@@ -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); }