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