nlopess         Wed Jan  3 22:02:43 2007 UTC

  Modified files:              
    /php-src/ext/pdo    pdo_sql_parser.c pdo_sql_parser.re 
  Log:
  fix a bug where PHP would enter in an infinite cycle with chars with ascii 
value > 127
  while at it, remove the lim structure parameter (it wasn't being used)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.51&r2=1.52&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.51 
php-src/ext/pdo/pdo_sql_parser.c:1.52
--- php-src/ext/pdo/pdo_sql_parser.c:1.51       Wed Jan  3 20:27:49 2007
+++ php-src/ext/pdo/pdo_sql_parser.c    Wed Jan  3 22:02:43 2007
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.10.6 on Sat Dec  9 17:16:39 2007 */
+/* Generated by re2c 0.10.4 on Wed Jan  3 22:02:19 2007 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +----------------------------------------------------------------------+
@@ -18,7 +18,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.51 2007/01/03 20:27:49 nlopess Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.52 2007/01/03 22:02:43 nlopess Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -31,14 +31,14 @@
 
 #define RET(i) {s->cur = cursor; return i; }
 
-#define YYCTYPE         char
+#define YYCTYPE         unsigned char
 #define YYCURSOR        cursor
-#define YYLIMIT         s->lim
+#define YYLIMIT         cursor
 #define YYMARKER        s->ptr
 #define YYFILL(n)
 
 typedef struct Scanner {
-       char    *lim, *ptr, *cur, *tok;
+       char    *ptr, *cur, *tok;
 } Scanner;
 
 static int scan(Scanner *s) 
@@ -263,7 +263,6 @@
 
        ptr = *outquery;
        s.cur = inquery;
-       s.lim = inquery + inquery_len;
 
        /* phase 1: look for args */
        while((t = scan(&s)) != PDO_PARSER_EOI) {
@@ -578,7 +577,6 @@
 
        ptr = *outquery;
        s.cur = inquery;
-       s.lim = inquery + inquery_len;
        while((t = scan(&s)) != PDO_PARSER_EOI) {
                if(t == PDO_PARSER_TEXT) {
                        memcpy(ptr, s.tok, s.cur - s.tok);
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.37&r2=1.38&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.37 
php-src/ext/pdo/pdo_sql_parser.re:1.38
--- php-src/ext/pdo/pdo_sql_parser.re:1.37      Tue Dec  5 18:05:56 2006
+++ php-src/ext/pdo/pdo_sql_parser.re   Wed Jan  3 22:02:43 2007
@@ -2,7 +2,7 @@
   +----------------------------------------------------------------------+
   | PHP Version 5                                                        |
   +----------------------------------------------------------------------+
-  | Copyright (c) 1997-2006 The PHP Group                                |
+  | Copyright (c) 1997-2007 The PHP Group                                |
   +----------------------------------------------------------------------+
   | This source file is subject to version 3.01 of the PHP license,      |
   | that is bundled with this package in the file LICENSE, and is        |
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.37 2006/12/05 18:05:56 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.38 2007/01/03 22:02:43 nlopess Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -29,14 +29,14 @@
 
 #define RET(i) {s->cur = cursor; return i; }
 
-#define YYCTYPE         char
+#define YYCTYPE         unsigned char
 #define YYCURSOR        cursor
-#define YYLIMIT         s->lim
+#define YYLIMIT         cursor
 #define YYMARKER        s->ptr
 #define YYFILL(n)
 
 typedef struct Scanner {
-       char    *lim, *ptr, *cur, *tok;
+       char    *ptr, *cur, *tok;
 } Scanner;
 
 static int scan(Scanner *s) 
@@ -90,7 +90,6 @@
 
        ptr = *outquery;
        s.cur = inquery;
-       s.lim = inquery + inquery_len;
 
        /* phase 1: look for args */
        while((t = scan(&s)) != PDO_PARSER_EOI) {
@@ -405,7 +404,6 @@
 
        ptr = *outquery;
        s.cur = inquery;
-       s.lim = inquery + inquery_len;
        while((t = scan(&s)) != PDO_PARSER_EOI) {
                if(t == PDO_PARSER_TEXT) {
                        memcpy(ptr, s.tok, s.cur - s.tok);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to