tony2001 Wed Mar 7 09:03:07 2007 UTC
Modified files: (Branch: PHP_5_2)
/php-src NEWS
/php-src/ext/pdo pdo_stmt.c
Log:
MFH: fix #40727 (segfault in PDO when failed to bind parameters)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.576&r2=1.2027.2.547.2.577&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.576 php-src/NEWS:1.2027.2.547.2.577
--- php-src/NEWS:1.2027.2.547.2.576 Tue Mar 6 21:28:36 2007
+++ php-src/NEWS Wed Mar 7 09:03:07 2007
@@ -15,6 +15,7 @@
- Added --ri switch to CLI which allows to check extension information.
(Marcus)
- Added tidyNode::getParent() method (John, Nuno)
- Fixed zend_llist_remove_tail (Michael Wallner, Dmitry)
+- Fixed bug #40727 (segfault in PDO when failed to bind parameters). (Tony)
- Fixed bug #40709 (array_reduce() behaves strange with one item stored
arrays).
(Ilia)
- Fixed bug #40703 (Resolved a possible namespace conflict between libxmlrpc
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_stmt.c?r1=1.118.2.38.2.14&r2=1.118.2.38.2.15&diff_format=u
Index: php-src/ext/pdo/pdo_stmt.c
diff -u php-src/ext/pdo/pdo_stmt.c:1.118.2.38.2.14
php-src/ext/pdo/pdo_stmt.c:1.118.2.38.2.15
--- php-src/ext/pdo/pdo_stmt.c:1.118.2.38.2.14 Sat Jan 27 21:53:26 2007
+++ php-src/ext/pdo/pdo_stmt.c Wed Mar 7 09:03:07 2007
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_stmt.c,v 1.118.2.38.2.14 2007/01/27 21:53:26 tony2001 Exp $ */
+/* $Id: pdo_stmt.c,v 1.118.2.38.2.15 2007/03/07 09:03:07 tony2001 Exp $ */
/* The PDO Statement Handle Class */
@@ -251,7 +251,10 @@
efree(param->name);
}
- zval_ptr_dtor(&(param->parameter));
+ if (param->parameter) {
+ zval_ptr_dtor(&(param->parameter));
+ param->parameter = NULL;
+ }
if (param->driver_params) {
zval_ptr_dtor(&(param->driver_params));
}
@@ -1557,7 +1560,10 @@
ZVAL_ADDREF(param.parameter);
if (!really_register_bound_param(¶m, stmt, is_param TSRMLS_CC)) {
- zval_ptr_dtor(&(param.parameter));
+ if (param.parameter) {
+ zval_ptr_dtor(&(param.parameter));
+ param.parameter = NULL;
+ }
return 0;
}
return 1;
@@ -1590,7 +1596,10 @@
ZVAL_ADDREF(param.parameter);
if (!really_register_bound_param(¶m, stmt, TRUE TSRMLS_CC)) {
- zval_ptr_dtor(&(param.parameter));
+ if (param.parameter) {
+ zval_ptr_dtor(&(param.parameter));
+ param.parameter = NULL;
+ }
RETURN_FALSE;
}
RETURN_TRUE;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php