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