dmitry Mon Jul 10 10:05:20 2006 UTC Modified files: (Branch: PHP_5_2) /php-src NEWS /php-src/ext/mysqli mysqli.c Log: Fixed bug #38019 (segfault extending mysqli class) http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.113&r2=1.2027.2.547.2.114&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.113 php-src/NEWS:1.2027.2.547.2.114 --- php-src/NEWS:1.2027.2.547.2.113 Mon Jul 10 07:41:32 2006 +++ php-src/NEWS Mon Jul 10 10:05:19 2006 @@ -82,6 +82,7 @@ - Fixed memory leaks in openssl streams context options. (Pierre) - Fixed handling of extremely long paths inside tempnam() function. (Ilia) +- Fixed bug #38019 (segfault extending mysqli class). (Dmitry) - Fixed bug #38005 (SoapFault faultstring doesn't follow encoding rules). (Dmitry) - Fixed bug #38004 (Parameters in SoapServer are decoded twice). (Dmitry) http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.6&r2=1.72.2.16.2.7&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.6 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.7 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.6 Wed Jul 5 11:48:30 2006 +++ php-src/ext/mysqli/mysqli.c Mon Jul 10 10:05:20 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: mysqli.c,v 1.72.2.16.2.6 2006/07/05 11:48:30 tony2001 Exp $ + $Id: mysqli.c,v 1.72.2.16.2.7 2006/07/10 10:05:20 dmitry Exp $ */ #ifdef HAVE_CONFIG_H @@ -132,13 +132,15 @@ } /* }}} */ -/* {{{ mysqli_objects_free_storage +/* {{{ mysqli_objects_destroy_object */ -static void mysqli_objects_free_storage(zend_object *object TSRMLS_DC) +static void mysqli_objects_destroy_object(zend_object *object, zend_object_handle handle TSRMLS_DC) { mysqli_object *intern = (mysqli_object *)object; MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; + zend_objects_destroy_object(object, handle TSRMLS_CC); + /* link object */ if (instanceof_function(intern->zo.ce, mysqli_link_class_entry TSRMLS_CC)) { if (my_res && my_res->ptr) { @@ -164,9 +166,17 @@ php_clear_warnings((MYSQLI_WARNING *)my_res->info); } } - intern->ptr = NULL; - my_efree(my_res); - +} +/* }}} */ + +/* {{{ mysqli_objects_free_storage + */ +static void mysqli_objects_free_storage(zend_object *object TSRMLS_DC) +{ + mysqli_object *intern = (mysqli_object *)object; + MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; + + my_efree(my_res); zend_object_std_dtor(&intern->zo TSRMLS_CC); efree(intern); } @@ -351,7 +361,7 @@ zend_hash_copy(intern->zo.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *)); - retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t) zend_objects_destroy_object, (zend_objects_free_object_storage_t) mysqli_objects_free_storage, NULL TSRMLS_CC); + retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t) mysqli_objects_destroy_object, (zend_objects_free_object_storage_t) mysqli_objects_free_storage, NULL TSRMLS_CC); retval.handlers = &mysqli_object_handlers; return retval;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php