[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2008-11-13 Thread Felipe Pena
felipe  Thu Nov 13 23:23:11 2008 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
  Log:
  - MFH: Better fix
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.19&r2=1.35.2.6.2.20&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.19 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.20
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.19  Thu Nov 13 14:53:55 2008
+++ php-src/ext/pdo/pdo_sql_parser.cThu Nov 13 23:23:11 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.6.dev on Thu Nov 13 12:51:46 2008 */
+/* Generated by re2c 0.13.6.dev on Thu Nov 13 21:23:12 2008 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.19 2008/11/13 14:53:55 felipe Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.20 2008/11/13 23:23:11 felipe Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -550,9 +550,8 @@
 
} else if (query_type == PDO_PLACEHOLDER_POSITIONAL) {
/* rewrite ? to :pdoX */
-   char idxbuf[32];
+   char *name, *idxbuf;
const char *tmpl = stmt->named_rewrite_template ? 
stmt->named_rewrite_template : ":pdo%d";
-   char *name;
int bind_no = 1;

newbuffer_len = inquery_len;
@@ -569,21 +568,19 @@
 
/* check if bound parameter is already available */
if (!strcmp(name, "?") || 
zend_hash_find(stmt->bound_param_map, name, plc->len + 1, (void**) &p) == 
FAILURE) {
-   snprintf(idxbuf, sizeof(idxbuf), tmpl, 
bind_no++);
+   spprintf(&idxbuf, 0, tmpl, bind_no++);
} else {
-   memset(idxbuf, 0, sizeof(idxbuf));
-   memcpy(idxbuf, p, sizeof(idxbuf));
+   idxbuf = estrdup(p);
skip_map = 1;
}
 
-   plc->quoted = estrdup(idxbuf);
+   plc->quoted = idxbuf;
plc->qlen = strlen(plc->quoted);
plc->freeq = 1;
newbuffer_len += plc->qlen;
 
if (!skip_map && stmt->named_rewrite_template) {
/* create a mapping */
-   
zend_hash_update(stmt->bound_param_map, name, 
plc->len + 1, idxbuf, plc->qlen + 1, NULL);
}
 
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.16&r2=1.28.2.4.2.17&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.16 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.17
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.16 Thu Nov 13 14:53:55 2008
+++ php-src/ext/pdo/pdo_sql_parser.re   Thu Nov 13 23:23:11 2008
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.16 2008/11/13 14:53:55 felipe Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.17 2008/11/13 23:23:11 felipe Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -299,9 +299,8 @@
 
} else if (query_type == PDO_PLACEHOLDER_POSITIONAL) {
/* rewrite ? to :pdoX */
-   char idxbuf[32];
+   char *name, *idxbuf;
const char *tmpl = stmt->named_rewrite_template ? 
stmt->named_rewrite_template : ":pdo%d";
-   char *name;
int bind_no = 1;

newbuffer_len = inquery_len;
@@ -318,21 +317,19 @@
 
/* check if bound parameter is already available */
if (!strcmp(name, "?") || 
zend_hash_find(stmt->bound_param_map, name, plc->len + 1, (void**) &p) == 
FAILURE) {
-   snprintf(idxbuf, sizeof(idxbuf), tmpl, 
bind_no++);
+   spprintf(&idxbuf, 0, tmpl, bind_no++);
} else {
-   memset(idxbuf, 0, sizeof(idxbuf));
-   memcpy(idxbuf, p, sizeof(idxbuf));
+   idxbuf = estrdup(p);
skip_map = 1;
}
 
-   plc->quoted = estrdup(idxbuf);
+   plc->quoted = idxbuf;
plc->qlen = strlen(plc->quoted);
plc->freeq = 1;
newbuffer_len += plc->qlen;
 
if (!skip_map && stmt->named_rewrite_template) {
  

[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2008-11-13 Thread Felipe Pena
felipe  Thu Nov 13 14:53:56 2008 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
  Log:
  - Reverted last change, only in this branch
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.18&r2=1.35.2.6.2.19&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.18 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.19
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.18  Thu Nov 13 13:09:47 2008
+++ php-src/ext/pdo/pdo_sql_parser.cThu Nov 13 14:53:55 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.6.dev on Thu Nov 13 11:09:07 2008 */
+/* Generated by re2c 0.13.6.dev on Thu Nov 13 12:51:46 2008 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.18 2008/11/13 13:09:47 felipe Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.19 2008/11/13 14:53:55 felipe Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -572,7 +572,7 @@
snprintf(idxbuf, sizeof(idxbuf), tmpl, 
bind_no++);
} else {
memset(idxbuf, 0, sizeof(idxbuf));
-   memcpy(idxbuf, p, strlen(p));
+   memcpy(idxbuf, p, sizeof(idxbuf));
skip_map = 1;
}
 
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.15&r2=1.28.2.4.2.16&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.15 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.16
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.15 Thu Nov 13 13:09:47 2008
+++ php-src/ext/pdo/pdo_sql_parser.re   Thu Nov 13 14:53:55 2008
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.15 2008/11/13 13:09:47 felipe Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.16 2008/11/13 14:53:55 felipe Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -321,7 +321,7 @@
snprintf(idxbuf, sizeof(idxbuf), tmpl, 
bind_no++);
} else {
memset(idxbuf, 0, sizeof(idxbuf));
-   memcpy(idxbuf, p, strlen(p));
+   memcpy(idxbuf, p, sizeof(idxbuf));
skip_map = 1;
}
 



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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2008-11-13 Thread Felipe Pena
felipe  Thu Nov 13 13:09:47 2008 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
  Log:
  - MFH: Fixed invalid reads
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.17&r2=1.35.2.6.2.18&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.17 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.18
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.17  Thu Oct 23 18:56:05 2008
+++ php-src/ext/pdo/pdo_sql_parser.cThu Nov 13 13:09:47 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Thu Oct 23 16:18:59 2008 */
+/* Generated by re2c 0.13.6.dev on Thu Nov 13 11:09:07 2008 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.17 2008/10/23 18:56:05 felipe Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.18 2008/11/13 13:09:47 felipe Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -572,7 +572,7 @@
snprintf(idxbuf, sizeof(idxbuf), tmpl, 
bind_no++);
} else {
memset(idxbuf, 0, sizeof(idxbuf));
-   memcpy(idxbuf, p, sizeof(idxbuf));
+   memcpy(idxbuf, p, strlen(p));
skip_map = 1;
}
 
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.14&r2=1.28.2.4.2.15&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.14 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.15
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.14 Thu Oct 23 18:56:05 2008
+++ php-src/ext/pdo/pdo_sql_parser.re   Thu Nov 13 13:09:47 2008
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.14 2008/10/23 18:56:05 felipe Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.15 2008/11/13 13:09:47 felipe Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -321,7 +321,7 @@
snprintf(idxbuf, sizeof(idxbuf), tmpl, 
bind_no++);
} else {
memset(idxbuf, 0, sizeof(idxbuf));
-   memcpy(idxbuf, p, sizeof(idxbuf));
+   memcpy(idxbuf, p, strlen(p));
skip_map = 1;
}
 



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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re /ext/pdo_pgsql/tests bug43925.phpt

2008-10-23 Thread Felipe Pena
felipe  Thu Oct 23 18:56:05 2008 UTC

  Added files: (Branch: PHP_5_2)
/php-src/ext/pdo_pgsql/testsbug43925.phpt 

  Modified files:  
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
  Log:
  - MFH: Fixed bug #43925 (Incorrect argument counter in prepared statements 
with pgsql)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.16&r2=1.35.2.6.2.17&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.16 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.17
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.16  Fri Oct 10 12:11:36 2008
+++ php-src/ext/pdo/pdo_sql_parser.cThu Oct 23 18:56:05 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Fri Oct 10 09:03:26 2008 */
+/* Generated by re2c 0.13.5 on Thu Oct 23 16:18:59 2008 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.16 2008/10/10 12:11:36 felipe Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.17 2008/10/23 18:56:05 felipe Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -553,6 +553,7 @@
char idxbuf[32];
const char *tmpl = stmt->named_rewrite_template ? 
stmt->named_rewrite_template : ":pdo%d";
char *name;
+   int bind_no = 1;

newbuffer_len = inquery_len;
 
@@ -568,7 +569,7 @@
 
/* check if bound parameter is already available */
if (!strcmp(name, "?") || 
zend_hash_find(stmt->bound_param_map, name, plc->len + 1, (void**) &p) == 
FAILURE) {
-   snprintf(idxbuf, sizeof(idxbuf), tmpl, 
plc->bindno + 1);
+   snprintf(idxbuf, sizeof(idxbuf), tmpl, 
bind_no++);
} else {
memset(idxbuf, 0, sizeof(idxbuf));
memcpy(idxbuf, p, sizeof(idxbuf));
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.13&r2=1.28.2.4.2.14&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.13 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.14
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.13 Fri Oct 10 12:11:36 2008
+++ php-src/ext/pdo/pdo_sql_parser.re   Thu Oct 23 18:56:05 2008
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.13 2008/10/10 12:11:36 felipe Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.14 2008/10/23 18:56:05 felipe Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -302,6 +302,7 @@
char idxbuf[32];
const char *tmpl = stmt->named_rewrite_template ? 
stmt->named_rewrite_template : ":pdo%d";
char *name;
+   int bind_no = 1;

newbuffer_len = inquery_len;
 
@@ -317,7 +318,7 @@
 
/* check if bound parameter is already available */
if (!strcmp(name, "?") || 
zend_hash_find(stmt->bound_param_map, name, plc->len + 1, (void**) &p) == 
FAILURE) {
-   snprintf(idxbuf, sizeof(idxbuf), tmpl, 
plc->bindno + 1);
+   snprintf(idxbuf, sizeof(idxbuf), tmpl, 
bind_no++);
} else {
memset(idxbuf, 0, sizeof(idxbuf));
memcpy(idxbuf, p, sizeof(idxbuf));

http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_pgsql/tests/bug43925.phpt?view=markup&rev=1.1
Index: php-src/ext/pdo_pgsql/tests/bug43925.phpt
+++ php-src/ext/pdo_pgsql/tests/bug43925.phpt
--TEST--
Bug #43925 (Incorrect argument counter in prepared statements with pgsql)
--SKIPIF--

--FILE--
query('DROP TABLE nodes');

$dbh->query('
CREATE TABLE nodes
(
   id   integer NOT NULL PRIMARY KEY
 , root integer NOT NULL
 , lft  integer NOT NULL
 , rgt  integer NOT NULL
);');

$dbh->query('INSERT INTO nodes (id, root, lft, rgt) VALUES (1, 1, 1, 6);');
$dbh->query('INSERT INTO nodes (id, root, lft, rgt) VALUES (2, 1, 2, 3);');
$dbh->query('INSERT INTO nodes (id, root, lft, rgt) VALUES (3, 1, 4, 5);');


$stmt = $dbh->prepare('
SELECT * 
FROM nodes 
WHERE (:rootId > 0 OR lft > :left OR rgt > :left) 
AND (root = :rootId OR root  = :left)
AND (1 > :left OR 1 < :left OR 1 = :left) 
AND (:x > 0 OR :x < 10 OR :x > 100) 
OR :y = 1 OR :left = 1
');

$stmt->bindValue('left',   1, PDO::PARAM_INT);
$stmt->bindValue('rootId', 3, PDO::PARAM_INT);
$stmt->bindValue('x', 5, PDO::PARAM_INT);
$stmt->bindValue('y', 50, PDO::PARAM_INT);

$stmt->execute();

foreach ($stmt->fetchAll()

Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re /ext/pdo_mysql/tests bug41125.phpt

2008-10-10 Thread Felipe Pena
Em Sáb, 2008-10-11 às 00:22 +0400, Antony Dovgal escreveu:
> On 10.10.2008 16:11, Felipe Pena wrote:
> > felipe  Fri Oct 10 12:11:36 2008 UTC
> > 
> >   Added files: (Branch: PHP_5_2)
> > /php-src/ext/pdo_mysql/testsbug41125.phpt 
> > 
> >   Modified files:  
> > /php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
> >   Log:
> >   MFH:
> >   - Fixed bug #44251 (Question mark and an escaped singel quote lead to an 
> > exception)
> >   - Fixed bug #41125 (PDO mysql + quote() + prepare() can result in seg 
> > fault)
> > Patch by: tsteiner at nerdclub dot net
> >   
> >   
> > 
> 
> Did you forget to commit that .inc file?
> 
> # cat /local/qa/5_2/ext/pdo_mysql/tests/bug41125.diff
> 001+ Warning: 
> require_once(/local/qa/5_2/ext/pdo_mysql/tests/mysql_pdo_test.inc): failed to 
> open stream: No such file or directory in 
> /local/qa/5_2/ext/pdo_mysql/tests/bug41125.php on line 3
> 001- 1
> 002- 0
> 003- ---
> 004- [1] Query: [[SELECT 1 FROM DUAL WHERE 1 = '?\'\'']]
> 003+ Fatal error: require_once(): Failed opening required 
> '/local/qa/5_2/ext/pdo_mysql/tests/mysql_pdo_test.inc' 
> (include_path='.:/usr/local/lib/php') in 
> /local/qa/5_2/ext/pdo_mysql/tests/bug41125.php on line 3
> 

Fixed, thanks!

-- 
Regards,
Felipe Pena


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



Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re /ext/pdo_mysql/tests bug41125.phpt

2008-10-10 Thread Antony Dovgal
On 10.10.2008 16:11, Felipe Pena wrote:
> felipeFri Oct 10 12:11:36 2008 UTC
> 
>   Added files: (Branch: PHP_5_2)
> /php-src/ext/pdo_mysql/tests  bug41125.phpt 
> 
>   Modified files:  
> /php-src/ext/pdo  pdo_sql_parser.c pdo_sql_parser.re 
>   Log:
>   MFH:
>   - Fixed bug #44251 (Question mark and an escaped singel quote lead to an 
> exception)
>   - Fixed bug #41125 (PDO mysql + quote() + prepare() can result in seg fault)
> Patch by: tsteiner at nerdclub dot net
>   
>   
> 

Did you forget to commit that .inc file?

# cat /local/qa/5_2/ext/pdo_mysql/tests/bug41125.diff
001+ Warning: 
require_once(/local/qa/5_2/ext/pdo_mysql/tests/mysql_pdo_test.inc): failed to 
open stream: No such file or directory in 
/local/qa/5_2/ext/pdo_mysql/tests/bug41125.php on line 3
001- 1
002- 0
003- ---
004- [1] Query: [[SELECT 1 FROM DUAL WHERE 1 = '?\'\'']]
003+ Fatal error: require_once(): Failed opening required 
'/local/qa/5_2/ext/pdo_mysql/tests/mysql_pdo_test.inc' 
(include_path='.:/usr/local/lib/php') in 
/local/qa/5_2/ext/pdo_mysql/tests/bug41125.php on line 3

-- 
Wbr, 
Antony Dovgal

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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re /ext/pdo_mysql/tests bug41125.phpt

2008-10-10 Thread Felipe Pena
felipe  Fri Oct 10 12:11:36 2008 UTC

  Added files: (Branch: PHP_5_2)
/php-src/ext/pdo_mysql/testsbug41125.phpt 

  Modified files:  
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
  Log:
  MFH:
  - Fixed bug #44251 (Question mark and an escaped singel quote lead to an 
exception)
  - Fixed bug #41125 (PDO mysql + quote() + prepare() can result in seg fault)
Patch by: tsteiner at nerdclub dot net
  
  http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.15&r2=1.35.2.6.2.16&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.15 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.16
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.15  Mon Dec 31 07:20:09 2007
+++ php-src/ext/pdo/pdo_sql_parser.cFri Oct 10 12:11:36 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.11.0 on Mon Nov 26 16:10:28 2007 */
+/* Generated by re2c 0.13.5 on Fri Oct 10 09:03:26 2008 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.15 2007/12/31 07:20:09 sebastian Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.16 2008/10/10 12:11:36 felipe Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -55,9 +55,9 @@
 {
YYCTYPE yych;
 
-   if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+   if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
-   switch(yych) {
+   switch (yych) {
case 0x00:  goto yy11;
case '"':   goto yy2;
case '\'':  goto yy4;
@@ -66,18 +66,19 @@
default:goto yy8;
}
 yy2:
-   yych = *++YYCURSOR;
-   goto yy24;
+   yych = *(YYMARKER = ++YYCURSOR);
+   if (yych >= 0x01) goto yy26;
 yy3:
 #line 63 "ext/pdo/pdo_sql_parser.re"
{ SKIP_ONE(PDO_PARSER_TEXT); }
 #line 75 "ext/pdo/pdo_sql_parser.c"
 yy4:
-   yych = *++YYCURSOR;
+   yych = *(YYMARKER = ++YYCURSOR);
+   if (yych <= 0x00) goto yy3;
goto yy20;
 yy5:
yych = *++YYCURSOR;
-   switch(yych) {
+   switch (yych) {
case '0':
case '1':
case '2':
@@ -147,7 +148,7 @@
}
 yy6:
++YYCURSOR;
-   switch((yych = *YYCURSOR)) {
+   switch ((yych = *YYCURSOR)) {
case ':':
case '?':   goto yy13;
default:goto yy7;
@@ -155,12 +156,12 @@
 yy7:
 #line 62 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_BIND_POS); }
-#line 159 "ext/pdo/pdo_sql_parser.c"
+#line 160 "ext/pdo/pdo_sql_parser.c"
 yy8:
++YYCURSOR;
-   if(YYLIMIT == YYCURSOR) YYFILL(1);
+   if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-   switch(yych) {
+   switch (yych) {
case 0x00:
case '"':
case '\'':
@@ -171,17 +172,17 @@
 yy10:
 #line 64 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 175 "ext/pdo/pdo_sql_parser.c"
+#line 176 "ext/pdo/pdo_sql_parser.c"
 yy11:
++YYCURSOR;
 #line 65 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_EOI); }
-#line 180 "ext/pdo/pdo_sql_parser.c"
+#line 181 "ext/pdo/pdo_sql_parser.c"
 yy13:
++YYCURSOR;
-   if(YYLIMIT == YYCURSOR) YYFILL(1);
+   if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-   switch(yych) {
+   switch (yych) {
case ':':
case '?':   goto yy13;
default:goto yy15;
@@ -189,12 +190,12 @@
 yy15:
 #line 60 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 193 "ext/pdo/pdo_sql_parser.c"
+#line 194 "ext/pdo/pdo_sql_parser.c"
 yy16:
++YYCURSOR;
-   if(YYLIMIT == YYCURSOR) YYFILL(1);
+   if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-   switch(yych) {
+   switch (yych) {
case '0':
case '1':
case '2':
@@ -263,35 +264,54 @@
 yy18:
 #line 61 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_BIND); }
-#line 267 "ext/pdo/pdo_sql_parser.c"
+#line 268 "ext/pdo/pdo_sql_parser.c"
 yy19:
++YYCURSOR;
-   if(YYLIMIT == YYCURSOR) YYFILL(1);
+   if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
 yy20:
-   switch(yych) {
-   case '\'':  goto yy21;
+   switch (yych) {
+   case 0x00:  goto yy21;
+   case '\'':  goto yy23;
+   case '\\':  goto yy22;
default:goto yy19;
}
 yy21:
+   YYCURSOR = YYMARKER;
+   goto yy3;
+yy22:
+   ++YYCURSOR;
+   if (YYLIMIT <= YYCURSOR) YYFILL(1);
+   yych = *YYCURSOR;
+   if (yych <= 0x00) goto yy21;
+   goto yy19;
+yy23:
++YYCURSOR;
 #line 59 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 281 "ext/pdo/pdo_sql_parser.c"
-yy23:
+#line 293 "ext/pdo/pdo_sql_parser.c"
+yy25:
++YYCURSOR;
-   if(YY

[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2007-11-26 Thread Ilia Alshanetsky
iliaa   Mon Nov 26 21:10:41 2007 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
  Log:
  
  MFB: Revert addition of - char support for bound param names
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.13&r2=1.35.2.6.2.14&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.13 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.14
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.13  Mon Oct 29 22:37:25 2007
+++ php-src/ext/pdo/pdo_sql_parser.cMon Nov 26 21:10:41 2007
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.11.0 on Mon Oct 29 18:36:37 2007 */
+/* Generated by re2c 0.11.0 on Mon Nov 26 16:10:28 2007 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.13 2007/10/29 22:37:25 iliaa Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.14 2007/11/26 21:10:41 iliaa Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -78,7 +78,6 @@
 yy5:
yych = *++YYCURSOR;
switch(yych) {
-   case '-':
case '0':
case '1':
case '2':
@@ -156,7 +155,7 @@
 yy7:
 #line 62 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_BIND_POS); }
-#line 160 "ext/pdo/pdo_sql_parser.c"
+#line 159 "ext/pdo/pdo_sql_parser.c"
 yy8:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -172,12 +171,12 @@
 yy10:
 #line 64 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 176 "ext/pdo/pdo_sql_parser.c"
+#line 175 "ext/pdo/pdo_sql_parser.c"
 yy11:
++YYCURSOR;
 #line 65 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_EOI); }
-#line 181 "ext/pdo/pdo_sql_parser.c"
+#line 180 "ext/pdo/pdo_sql_parser.c"
 yy13:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -190,13 +189,12 @@
 yy15:
 #line 60 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 194 "ext/pdo/pdo_sql_parser.c"
+#line 193 "ext/pdo/pdo_sql_parser.c"
 yy16:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych) {
-   case '-':
case '0':
case '1':
case '2':
@@ -265,7 +263,7 @@
 yy18:
 #line 61 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_BIND); }
-#line 269 "ext/pdo/pdo_sql_parser.c"
+#line 267 "ext/pdo/pdo_sql_parser.c"
 yy19:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -279,7 +277,7 @@
++YYCURSOR;
 #line 59 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 283 "ext/pdo/pdo_sql_parser.c"
+#line 281 "ext/pdo/pdo_sql_parser.c"
 yy23:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -293,7 +291,7 @@
++YYCURSOR;
 #line 58 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 297 "ext/pdo/pdo_sql_parser.c"
+#line 295 "ext/pdo/pdo_sql_parser.c"
 }
 #line 66 "ext/pdo/pdo_sql_parser.re"

http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.10&r2=1.28.2.4.2.11&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.10 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.11
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.10 Mon Oct 29 22:37:25 2007
+++ php-src/ext/pdo/pdo_sql_parser.re   Mon Nov 26 21:10:41 2007
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.10 2007/10/29 22:37:25 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.11 2007/11/26 21:10:41 iliaa Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -46,7 +46,7 @@
 
s->tok = cursor;
/*!re2c
-   BINDCHR = [:][a-zA-Z0-9_-]+;
+   BINDCHR = [:][a-zA-Z0-9_]+;
QUESTION= [?];
SPECIALS= [:?"'];
MULTICHAR   = [:?];

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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2007-01-03 Thread Nuno Lopes
nlopess Wed Jan  3 22:05:25 2007 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
  Log:
  MFH: fix infinite cycle
  #this was the infinite cycle that was bugging me in the gcov machine...
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.7&r2=1.35.2.6.2.8&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.7 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.8
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.7   Mon Jan  1 09:36:04 2007
+++ php-src/ext/pdo/pdo_sql_parser.cWed Jan  3 22:05:24 2007
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.10.6 on Mon Dec  4 16:21:45 2006 */
+/* Generated by re2c 0.10.4 on Wed Jan  3 22:04:03 2007 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.7 2007/01/01 09:36:04 sebastian Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.8 2007/01/03 22:05:24 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 YYCURSORcursor
-#define YYLIMIT s->lim
+#define YYLIMIT cursor
 #define YYMARKERs->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.28.2.4.2.5&r2=1.28.2.4.2.6&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.5 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.6
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.5  Tue Dec  5 18:04:59 2006
+++ php-src/ext/pdo/pdo_sql_parser.re   Wed Jan  3 22:05:24 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.28.2.4.2.5 2006/12/05 18:04:59 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.6 2007/01/03 22:05:24 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 YYCURSORcursor
-#define YYLIMIT s->lim
+#define YYLIMIT cursor
 #define YYMARKERs->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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2006-12-03 Thread Ilia Alshanetsky
iliaa   Sun Dec  3 23:27:44 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.re pdo_sql_parser.c 
  Log:
  Added missing check for mismatching number of tokens & bound params in
  prepared statement emulation.
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.2&r2=1.28.2.4.2.3&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.2 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.3
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.2  Thu Nov 23 14:41:35 2006
+++ php-src/ext/pdo/pdo_sql_parser.re   Sun Dec  3 23:27:44 2006
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.2 2006/11/23 14:41:35 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.3 2006/12/03 23:27:44 iliaa Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -132,7 +132,6 @@
goto clean_up;
}
 
-
if (stmt->supports_placeholders == query_type && 
!stmt->named_rewrite_template) {
/* query matches native syntax */
ret = 0;
@@ -156,7 +155,13 @@
ret = -1;
goto clean_up;
}
-   
+
+   if (params && bindno != zend_hash_num_elements(params) && 
stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) {
+   pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "number of bound 
variables does not match number of tokens" TSRMLS_CC);
+   ret = -1;
+   goto clean_up;
+   }
+
/* what are we going to do ? */

if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) {
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.3&r2=1.35.2.6.2.4&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.3 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.4
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.3   Thu Nov 23 14:41:35 2006
+++ php-src/ext/pdo/pdo_sql_parser.cSun Dec  3 23:27:44 2006
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.10.6 on Thu Nov 23 09:39:04 2006 */
+/* Generated by re2c 0.10.6 on Sun Dec  3 18:24:46 2006 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.3 2006/11/23 14:41:35 iliaa Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.4 2006/12/03 23:27:44 iliaa Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -352,7 +352,6 @@
goto clean_up;
}
 
-
if (stmt->supports_placeholders == query_type && 
!stmt->named_rewrite_template) {
/* query matches native syntax */
ret = 0;
@@ -376,7 +375,13 @@
ret = -1;
goto clean_up;
}
-   
+
+   if (params && bindno != zend_hash_num_elements(params) && 
stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) {
+   pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "number of bound 
variables does not match number of tokens" TSRMLS_CC);
+   ret = -1;
+   goto clean_up;
+   }
+
/* what are we going to do ? */

if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) {

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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2006-11-23 Thread Ilia Alshanetsky
iliaa   Thu Nov 23 14:41:35 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
  Log:
  Fixed a possible crash
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.2&r2=1.35.2.6.2.3&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.2 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.3
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.2   Sun Nov 12 17:55:44 2006
+++ php-src/ext/pdo/pdo_sql_parser.cThu Nov 23 14:41:35 2006
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.10.6 on Sun Nov 12 12:53:54 2006 */
+/* Generated by re2c 0.10.6 on Thu Nov 23 09:39:04 2006 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.2 2006/11/12 17:55:44 iliaa Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.3 2006/11/23 14:41:35 iliaa Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -412,11 +412,14 @@
/* bork */
ret = -1;

strcpy(stmt->error_code, stmt->dbh->error_code);
-   efree(buf);
+   if (buf) {
+   efree(buf);
+   }
goto clean_up;
}
-   efree(buf);
-
+   if (buf) {
+   efree(buf);
+   }
} else {
pdo_raise_impl_error(stmt->dbh, 
stmt, "HY105", "Expected a stream resource" TSRMLS_CC);
ret = -1;
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.1&r2=1.28.2.4.2.2&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.1 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.2
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.1  Sun Nov 12 17:49:19 2006
+++ php-src/ext/pdo/pdo_sql_parser.re   Thu Nov 23 14:41:35 2006
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.1 2006/11/12 17:49:19 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.2 2006/11/23 14:41:35 iliaa Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -192,11 +192,14 @@
/* bork */
ret = -1;

strcpy(stmt->error_code, stmt->dbh->error_code);
-   efree(buf);
+   if (buf) {
+   efree(buf);
+   }
goto clean_up;
}
-   efree(buf);
-
+   if (buf) {
+   efree(buf);
+   }
} else {
pdo_raise_impl_error(stmt->dbh, 
stmt, "HY105", "Expected a stream resource" TSRMLS_CC);
ret = -1;

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



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2006-11-12 Thread Ilia Alshanetsky
iliaa   Sun Nov 12 17:49:20 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
  Log:
  Fixed a memory leak when named & positional params are being used in the
  same query.
  
  http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6&r2=1.35.2.6.2.1&diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.1
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6   Wed Jan 25 16:35:23 2006
+++ php-src/ext/pdo/pdo_sql_parser.cSun Nov 12 17:49:19 2006
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.9.11 on Wed Jan 25 11:31:13 2006 */
+/* Generated by re2c 0.10.6 on Sun Nov 12 12:48:44 2006 */
 #line 1 "ext/pdo/pdo_sql_parser.re"
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6 2006/01/25 16:35:23 iliaa Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.1 2006/11/12 17:49:19 iliaa Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -51,241 +51,271 @@
 
{
static unsigned char yybm[] = {
- 0, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162,  52, 162, 162, 162, 162, 196, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   170, 170, 170, 170, 170, 170, 170, 170, 
-   170, 170, 244, 162, 162, 162, 162, 244, 
-   162, 170, 170, 170, 170, 170, 170, 170, 
-   170, 170, 170, 170, 170, 170, 170, 170, 
-   170, 170, 170, 170, 170, 170, 170, 170, 
-   170, 170, 170, 162,   2, 162, 162, 170, 
-   162, 170, 170, 170, 170, 170, 170, 170, 
-   170, 170, 170, 170, 170, 170, 170, 170, 
-   170, 170, 170, 170, 170, 170, 170, 170, 
-   170, 170, 170, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
-   162, 162, 162, 162, 162, 162, 162, 162, 
+ 0, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162,  52, 162, 162, 162, 162, 196, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   170, 170, 170, 170, 170, 170, 170, 170, 
+   170, 170, 244, 162, 162, 162, 162, 244, 
+   162, 170, 170, 170, 170, 170, 170, 170, 
+   170, 170, 170, 170, 170, 170, 170, 170, 
+   170, 170, 170, 170, 170, 170, 170, 170, 
+   170, 170, 170, 162,   2, 162, 162, 170, 
+   162, 170, 170, 170, 170, 170, 170, 170, 
+   170, 170, 170, 170, 170, 170, 170, 170, 
+   170, 170, 170, 170, 170, 170, 170, 170, 
+   170, 170, 170, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
+   162, 162, 162, 162, 162, 162, 162, 162, 
};
 
 #line 89 "ext/pdo/pdo_sql_parser.c"
-{
-   YYCTYPE yych;
-   unsigned int yyaccept = 0;
-   goto yy0;
-   ++YYCURSOR;
-yy0:
-   if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
-   yych = *YYCURSOR;
-   if(yybm[0+yych] & 2) {
-   goto yy8;
-   }
-   if(yych <= 0x00)goto yy11;
-   i