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