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(&param, 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(&param, 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

Reply via email to