[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli.c
iliaa Mon Feb 18 13:29:00 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: MFB:Fixed a possible crash http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.23&r2=1.72.2.16.2.24&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.23 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.24 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.23 Mon Dec 31 07:20:08 2007 +++ php-src/ext/mysqli/mysqli.c Mon Feb 18 13:29:00 2008 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.23 2007/12/31 07:20:08 sebastian Exp $ + $Id: mysqli.c,v 1.72.2.16.2.24 2008/02/18 13:29:00 iliaa Exp $ */ #ifdef HAVE_CONFIG_H @@ -1194,7 +1194,9 @@ return; } - php_stream_close(mysql->li_stream); + if (mysql->li_stream) { + php_stream_close(mysql->li_stream); + } free(data); return; } -- 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/mysqli mysqli.c
johannesSat Nov 10 19:52:08 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: - Use #if instead of #ifdef there (by Mikko Koppanen) http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.21&r2=1.72.2.16.2.22&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.21 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.22 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.21 Mon Oct 22 10:35:33 2007 +++ php-src/ext/mysqli/mysqli.c Sat Nov 10 19:52:08 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.21 2007/10/22 10:35:33 andrey Exp $ + $Id: mysqli.c,v 1.72.2.16.2.22 2007/11/10 19:52:08 johannes Exp $ */ #ifdef HAVE_CONFIG_H @@ -693,7 +693,7 @@ */ PHP_RINIT_FUNCTION(mysqli) { -#ifdef ZTS && MYSQL_VERSION_ID >= 4 +#if defined(ZTS) && MYSQL_VERSION_ID >= 4 if (mysql_thread_init()) { return FAILURE; } @@ -709,7 +709,7 @@ */ PHP_RSHUTDOWN_FUNCTION(mysqli) { -#ifdef ZTS && MYSQL_VERSION_ID >= 4 +#if defined(ZTS) && MYSQL_VERSION_ID >= 4 mysql_thread_end(); #endif if (MyG(error_msg)) { -- 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/mysqli mysqli.c
andrey Mon Oct 22 10:35:33 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: Make it compile with libmysql 3.23 http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.20&r2=1.72.2.16.2.21&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.20 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.21 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.20 Wed Oct 17 08:19:50 2007 +++ php-src/ext/mysqli/mysqli.c Mon Oct 22 10:35:33 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.20 2007/10/17 08:19:50 tony2001 Exp $ + $Id: mysqli.c,v 1.72.2.16.2.21 2007/10/22 10:35:33 andrey Exp $ */ #ifdef HAVE_CONFIG_H @@ -494,6 +494,12 @@ REGISTER_INI_ENTRIES(); +#if MYSQL_VERSION_ID >= 4 + if (mysql_server_init(0, NULL, NULL)) { + return FAILURE; + } +#endif + memcpy(&mysqli_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); mysqli_object_handlers.clone_obj = NULL; mysqli_object_handlers.read_property = mysqli_read_property; @@ -651,10 +657,6 @@ REGISTER_LONG_CONSTANT("MYSQLI_REPORT_ALL", MYSQLI_REPORT_ALL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQLI_REPORT_OFF", 0, CONST_CS | CONST_PERSISTENT); - if (mysql_server_init(0, NULL, NULL)) { - return FAILURE; - } - return SUCCESS; } /* }}} */ @@ -663,6 +665,7 @@ */ PHP_MSHUTDOWN_FUNCTION(mysqli) { +#if MYSQL_VERSION_ID >= 4 #ifdef PHP_WIN32 unsigned long client_ver = mysql_get_client_version(); /* Can't call mysql_server_end() multiple times prior to 5.0.42 on Windows */ @@ -672,6 +675,7 @@ #else mysql_server_end(); #endif +#endif zend_hash_destroy(&mysqli_driver_properties); zend_hash_destroy(&mysqli_result_properties); @@ -689,7 +693,7 @@ */ PHP_RINIT_FUNCTION(mysqli) { -#ifdef ZTS +#ifdef ZTS && MYSQL_VERSION_ID >= 4 if (mysql_thread_init()) { return FAILURE; } @@ -705,7 +709,7 @@ */ PHP_RSHUTDOWN_FUNCTION(mysqli) { -#ifdef ZTS +#ifdef ZTS && MYSQL_VERSION_ID >= 4 mysql_thread_end(); #endif if (MyG(error_msg)) { -- 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/mysqli mysqli.c mysqli_api.c
tony2001Wed Oct 17 08:19:51 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli_api.c mysqli.c Log: MFH http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.17&r2=1.118.2.22.2.18&diff_format=u Index: php-src/ext/mysqli/mysqli_api.c diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.17 php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.18 --- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.17 Tue Oct 16 13:20:29 2007 +++ php-src/ext/mysqli/mysqli_api.c Wed Oct 17 08:19:50 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli_api.c,v 1.118.2.22.2.17 2007/10/16 13:20:29 tony2001 Exp $ + $Id: mysqli_api.c,v 1.118.2.22.2.18 2007/10/17 08:19:50 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -1170,7 +1170,7 @@ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID); if (mysql->li_read) { - zval_dtor(mysql->li_read); + zval_ptr_dtor(&(mysql->li_read)); mysql->li_read = NULL; } } @@ -1198,11 +1198,14 @@ efree(callback_name); RETURN_FALSE; } - efree(callback_name); /* save callback function */ - ALLOC_ZVAL(mysql->li_read); - ZVAL_STRING(mysql->li_read, callback_func->value.str.val, 1); + if (!mysql->li_read) { + MAKE_STD_ZVAL(mysql->li_read); + } else { + zval_dtor(mysql->li_read); + } + ZVAL_STRING(mysql->li_read, callback_name, 0); RETURN_TRUE; } http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.19&r2=1.72.2.16.2.20&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.19 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.20 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.19 Tue Oct 16 13:20:29 2007 +++ php-src/ext/mysqli/mysqli.c Wed Oct 17 08:19:50 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.19 2007/10/16 13:20:29 tony2001 Exp $ + $Id: mysqli.c,v 1.72.2.16.2.20 2007/10/17 08:19:50 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -125,7 +125,7 @@ /* {{{ php_clear_mysql */ void php_clear_mysql(MY_MYSQL *mysql) { if (mysql->li_read) { - zval_dtor(mysql->li_read); + zval_ptr_dtor(&(mysql->li_read)); mysql->li_read = NULL; } } -- 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/mysqli mysqli.c mysqli_api.c
tony2001Tue Oct 16 13:20:29 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c mysqli_api.c Log: avoid double free and use zval_dtor() where neccessary http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.18&r2=1.72.2.16.2.19&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.18 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.19 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.18 Tue Oct 9 16:56:38 2007 +++ php-src/ext/mysqli/mysqli.c Tue Oct 16 13:20:29 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.18 2007/10/09 16:56:38 scottmac Exp $ + $Id: mysqli.c,v 1.72.2.16.2.19 2007/10/16 13:20:29 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -125,8 +125,7 @@ /* {{{ php_clear_mysql */ void php_clear_mysql(MY_MYSQL *mysql) { if (mysql->li_read) { - efree(Z_STRVAL_P(mysql->li_read)); - FREE_ZVAL(mysql->li_read); + zval_dtor(mysql->li_read); mysql->li_read = NULL; } } http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.16&r2=1.118.2.22.2.17&diff_format=u Index: php-src/ext/mysqli/mysqli_api.c diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.16 php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.17 --- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.16 Thu Sep 6 10:07:42 2007 +++ php-src/ext/mysqli/mysqli_api.c Tue Oct 16 13:20:29 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli_api.c,v 1.118.2.22.2.16 2007/09/06 10:07:42 andrey Exp $ + $Id: mysqli_api.c,v 1.118.2.22.2.17 2007/10/16 13:20:29 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -1170,7 +1170,6 @@ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID); if (mysql->li_read) { - efree(Z_STRVAL_P(mysql->li_read)); zval_dtor(mysql->li_read); mysql->li_read = NULL; } -- 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/mysqli mysqli.c
scottmacTue Oct 9 16:56:39 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: MFH: Add constant to allow setting of character set with mysqli_options prior to connection. http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.17&r2=1.72.2.16.2.18&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.17 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.18 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.17 Wed Sep 12 09:12:56 2007 +++ php-src/ext/mysqli/mysqli.c Tue Oct 9 16:56:38 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.17 2007/09/12 09:12:56 andrey Exp $ + $Id: mysqli.c,v 1.72.2.16.2.18 2007/10/09 16:56:38 scottmac Exp $ */ #ifdef HAVE_CONFIG_H @@ -632,7 +632,7 @@ REGISTER_LONG_CONSTANT("MYSQLI_TYPE_BIT", FIELD_TYPE_BIT, CONST_CS | CONST_PERSISTENT); #endif - + REGISTER_LONG_CONSTANT("MYSQLI_SET_CHARSET_NAME", MYSQL_SET_CHARSET_NAME, CONST_CS | CONST_PERSISTENT); /* replication */ REGISTER_LONG_CONSTANT("MYSQLI_RPL_MASTER", MYSQL_RPL_MASTER, CONST_CS | CONST_PERSISTENT); -- 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/mysqli mysqli.c
helly Tue Mar 20 20:00:27 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: - MFH Optional dependency for SPL must be specified in header http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.14&r2=1.72.2.16.2.15&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.14 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.15 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.14 Sat Feb 24 02:17:25 2007 +++ php-src/ext/mysqli/mysqli.c Tue Mar 20 20:00:27 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.14 2007/02/24 02:17:25 helly Exp $ + $Id: mysqli.c,v 1.72.2.16.2.15 2007/03/20 20:00:27 helly Exp $ */ #ifdef HAVE_CONFIG_H @@ -415,8 +415,21 @@ /* {{{ mysqli_module_entry */ +/* Dependancies */ +static zend_module_dep mysqli_deps[] = { +#if defined(HAVE_SPL) && ((PHP_MAJOR_VERSION > 5) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION >= 1)) + ZEND_MOD_REQUIRED("spl") +#endif + {NULL, NULL, NULL} +}; + zend_module_entry mysqli_module_entry = { +#if ZEND_MODULE_API_NO >= 20050922 + STANDARD_MODULE_HEADER_EX, NULL, + mysqli_deps, +#elif ZEND_MODULE_API_NO >= 20010901 STANDARD_MODULE_HEADER, +#endif "mysqli", mysqli_functions, PHP_MINIT(mysqli), -- 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/mysqli mysqli.c
stasFri Feb 16 18:48:53 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: use error message size http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.12&r2=1.72.2.16.2.13&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.12 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.13 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.12 Mon Jan 1 09:36:03 2007 +++ php-src/ext/mysqli/mysqli.c Fri Feb 16 18:48:53 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.12 2007/01/01 09:36:03 sebastian Exp $ + $Id: mysqli.c,v 1.72.2.16.2.13 2007/02/16 18:48:53 stas Exp $ */ #ifdef HAVE_CONFIG_H @@ -1130,10 +1130,10 @@ mysqli_local_infile *data = (mysqli_local_infile *) ptr; if (data) { - strcpy(error_msg, data->error_msg); + strlcpy(error_msg, data->error_msg, error_msg_len); return 2000; } - strcpy(error_msg, ER(CR_OUT_OF_MEMORY)); + strlcpy(error_msg, ER(CR_OUT_OF_MEMORY), error_msg_len); return CR_OUT_OF_MEMORY; } /* }}} */ -- 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/mysqli mysqli.c
tony2001Thu Jul 27 10:53:15 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: MFH: fix leak in php_local_infile_init() handler http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.10&r2=1.72.2.16.2.11&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.10 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.11 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.10 Wed Jul 12 09:33:37 2006 +++ php-src/ext/mysqli/mysqli.c Thu Jul 27 10:53:15 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.10 2006/07/12 09:33:37 tony2001 Exp $ + $Id: mysqli.c,v 1.72.2.16.2.11 2006/07/27 10:53:15 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -1149,11 +1149,15 @@ data= (mysqli_local_infile *)ptr; - if (!(mysql = data->userdata)) { + if (!data || !(mysql = data->userdata)) { + if (data) { + free(data); + } return; } php_stream_close(mysql->li_stream); + free(data); return; } /* }}} */ -- 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/mysqli mysqli.c
tony2001Wed Jul 12 09:33:37 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: fix TSRM build http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.9&r2=1.72.2.16.2.10&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.9 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.10 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.9 Mon Jul 10 13:02:43 2006 +++ php-src/ext/mysqli/mysqli.c Wed Jul 12 09:33:37 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.9 2006/07/10 13:02:43 tony2001 Exp $ + $Id: mysqli.c,v 1.72.2.16.2.10 2006/07/12 09:33:37 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -495,7 +495,7 @@ #ifdef HAVE_SPL mysqli_exception_class_entry = zend_register_internal_class_ex(&cex, spl_ce_RuntimeException, NULL TSRMLS_CC); #else - mysqli_exception_class_entry = zend_register_internal_class_ex(&cex, zend_exception_get_default(), NULL TSRMLS_CC); + mysqli_exception_class_entry = zend_register_internal_class_ex(&cex, zend_exception_get_default(TSRMLS_C), NULL TSRMLS_CC); #endif mysqli_exception_class_entry->ce_flags |= ZEND_ACC_FINAL; zend_declare_property_long(mysqli_exception_class_entry, "code", sizeof("code")-1, 0, ZEND_ACC_PROTECTED TSRMLS_CC); -- 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/mysqli mysqli.c
tony2001Mon Jul 10 13:02:43 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: MFH: fix mysqli_*_free_storage() funcs to conform with their prototypes http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.8&r2=1.72.2.16.2.9&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.8 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.9 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.8 Mon Jul 10 12:46:28 2006 +++ php-src/ext/mysqli/mysqli.c Mon Jul 10 13:02:43 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.8 2006/07/10 12:46:28 dmitry Exp $ + $Id: mysqli.c,v 1.72.2.16.2.9 2006/07/10 13:02:43 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -134,9 +134,10 @@ /* {{{ mysqli_objects_free_storage */ -static void mysqli_objects_free_storage(zend_object *object TSRMLS_DC) +static void mysqli_objects_free_storage(void *object TSRMLS_DC) { - mysqli_object *intern = (mysqli_object *)object; + zend_object *zo = (zend_object *)object; + mysqli_object *intern = (mysqli_object *)zo; MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; my_efree(my_res); @@ -147,9 +148,10 @@ /* {{{ mysqli_link_free_storage */ -static void mysqli_link_free_storage(zend_object *object TSRMLS_DC) +static void mysqli_link_free_storage(void *object TSRMLS_DC) { - mysqli_object *intern = (mysqli_object *)object; + zend_object *zo = (zend_object *)object; + mysqli_object *intern = (mysqli_object *)zo; MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; if (my_res && my_res->ptr) { @@ -166,9 +168,10 @@ /* {{{ mysqli_stmt_free_storage */ -static void mysqli_stmt_free_storage(zend_object *object TSRMLS_DC) +static void mysqli_stmt_free_storage(void *object TSRMLS_DC) { - mysqli_object *intern = (mysqli_object *)object; + zend_object *zo = (zend_object *)object; + mysqli_object *intern = (mysqli_object *)zo; MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; if (my_res && my_res->ptr) { @@ -181,9 +184,10 @@ /* {{{ mysqli_result_free_storage */ -static void mysqli_result_free_storage(zend_object *object TSRMLS_DC) +static void mysqli_result_free_storage(void *object TSRMLS_DC) { - mysqli_object *intern = (mysqli_object *)object; + zend_object *zo = (zend_object *)object; + mysqli_object *intern = (mysqli_object *)zo; MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; if (my_res && my_res->ptr) { @@ -195,9 +199,10 @@ /* {{{ mysqli_warning_free_storage */ -static void mysqli_warning_free_storage(zend_object *object TSRMLS_DC) +static void mysqli_warning_free_storage(void *object TSRMLS_DC) { - mysqli_object *intern = (mysqli_object *)object; + zend_object *zo = (zend_object *)object; + mysqli_object *intern = (mysqli_object *)zo; MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; if (my_res && my_res->ptr) { -- 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/mysqli mysqli.c
dmitry Mon Jul 10 12:46:28 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: Another fix for #38019 http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.7&r2=1.72.2.16.2.8&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.7 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.8 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.7 Mon Jul 10 10:05:20 2006 +++ php-src/ext/mysqli/mysqli.c Mon Jul 10 12:46:28 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.7 2006/07/10 10:05:20 dmitry Exp $ + $Id: mysqli.c,v 1.72.2.16.2.8 2006/07/10 12:46:28 dmitry Exp $ */ #ifdef HAVE_CONFIG_H @@ -132,53 +132,79 @@ } /* }}} */ -/* {{{ mysqli_objects_destroy_object +/* {{{ mysqli_objects_free_storage */ -static void mysqli_objects_destroy_object(zend_object *object, zend_object_handle handle TSRMLS_DC) +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; - zend_objects_destroy_object(object, handle TSRMLS_CC); + my_efree(my_res); + zend_object_std_dtor(&intern->zo TSRMLS_CC); + efree(intern); +} +/* }}} */ - /* link object */ - if (instanceof_function(intern->zo.ce, mysqli_link_class_entry TSRMLS_CC)) { - if (my_res && my_res->ptr) { - MY_MYSQL *mysql = (MY_MYSQL *)my_res->ptr; - if (mysql->mysql) { - mysql_close(mysql->mysql); - } - php_clear_mysql(mysql); - efree(mysql); - my_res->ptr = NULL; - } - } else if (instanceof_function(intern->zo.ce, mysqli_stmt_class_entry TSRMLS_CC)) { /* stmt object */ - if (my_res && my_res->ptr) { - MY_STMT *stmt = (MY_STMT *)my_res->ptr; - php_clear_stmt_bind(stmt); - } - } else if (instanceof_function(intern->zo.ce, mysqli_result_class_entry TSRMLS_CC)) { /* result object */ - if (my_res && my_res->ptr) { - mysql_free_result(my_res->ptr); - } - } else if (instanceof_function(intern->zo.ce, mysqli_warning_class_entry TSRMLS_CC)) { /* warning object */ - if (my_res && my_res->ptr) { - php_clear_warnings((MYSQLI_WARNING *)my_res->info); +/* {{{ mysqli_link_free_storage + */ +static void mysqli_link_free_storage(zend_object *object TSRMLS_DC) +{ + mysqli_object *intern = (mysqli_object *)object; + MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; + + if (my_res && my_res->ptr) { + MY_MYSQL *mysql = (MY_MYSQL *)my_res->ptr; + if (mysql->mysql) { + mysql_close(mysql->mysql); } + php_clear_mysql(mysql); + efree(mysql); } + mysqli_objects_free_storage(object TSRMLS_CC); } /* }}} */ -/* {{{ mysqli_objects_free_storage +/* {{{ mysqli_stmt_free_storage */ -static void mysqli_objects_free_storage(zend_object *object TSRMLS_DC) +static void mysqli_stmt_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); + if (my_res && my_res->ptr) { + MY_STMT *stmt = (MY_STMT *)my_res->ptr; + php_clear_stmt_bind(stmt); + } + mysqli_objects_free_storage(object TSRMLS_CC); +} +/* }}} */ + +/* {{{ mysqli_result_free_storage + */ +static void mysqli_result_free_storage(zend_object *object TSRMLS_DC) +{ + mysqli_object *intern = (mysqli_object *)object; + MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; + + if (my_res && my_res->ptr) { + mysql_free_result(my_res->ptr); + } + mysqli_objects_free_storage(object TSRMLS_CC); +} +/* }}} */ + +/* {{{ mysqli_warning_free_storage + */ +static void mysqli_warning_free_storage(zend_object *object TSRMLS_DC) +{ + mysqli_object *intern = (mysqli_object *)object; + MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr; + + if (my_res && my_res->ptr) { + php_clear_warnings((MYSQLI_WARNING *)my_res->info); + my_res->ptr = NULL; + } + mysqli_objects_free_storage(object TSRMLS_CC); } /* }}} */ @@ -343,6 +369,7 @@ mysqli_object *intern; zval *tmp; zend_class_entry *mysqli_base_class; + zend
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/mysqli mysqli.c
tony2001Wed Jul 5 11:48:31 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c Log: MFH: fix bug #38003(in classes inherited from mysqli it's possible to call private constructors from invalid context) http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.5&r2=1.72.2.16.2.6&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.5 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.6 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.5 Thu Jun 15 18:33:08 2006 +++ php-src/ext/mysqli/mysqli.c Wed Jul 5 11:48:30 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.5 2006/06/15 18:33:08 dmitry Exp $ + $Id: mysqli.c,v 1.72.2.16.2.6 2006/07/05 11:48:30 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -293,11 +293,12 @@ static union _zend_function *php_mysqli_constructor_get(zval *object TSRMLS_DC) { mysqli_object *obj = (mysqli_object *)zend_objects_get_address(object TSRMLS_CC); + zend_class_entry * ce = Z_OBJCE_P(object); - if (obj->zo.ce != mysqli_link_class_entry && obj->zo.ce != mysqli_stmt_class_entry && - obj->zo.ce != mysqli_result_class_entry && obj->zo.ce != mysqli_driver_class_entry && - obj->zo.ce != mysqli_warning_class_entry) { - return obj->zo.ce->constructor; + if (ce != mysqli_link_class_entry && ce != mysqli_stmt_class_entry && + ce != mysqli_result_class_entry && ce != mysqli_driver_class_entry && + ce != mysqli_warning_class_entry) { + return zend_std_get_constructor(object TSRMLS_CC); } else { static zend_internal_function f; -- 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/mysqli mysqli.c mysqli_api.c
andrey Wed May 10 11:53:13 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c mysqli_api.c Log: Don't allocate 2 chunks of memory when one can fit. Reduces memory fragmentation. There is one more place that fragments memory but it will complicate the ongoing Unicode upgrade of mysqli so leaving it away for now. http://cvs.php.net/viewcvs.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16.2.2&r2=1.72.2.16.2.3&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16.2.2 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.3 --- php-src/ext/mysqli/mysqli.c:1.72.2.16.2.2 Tue May 9 23:58:46 2006 +++ php-src/ext/mysqli/mysqli.c Wed May 10 11:53:13 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16.2.2 2006/05/09 23:58:46 helly Exp $ + $Id: mysqli.c,v 1.72.2.16.2.3 2006/05/10 11:53:13 andrey Exp $ */ #ifdef HAVE_CONFIG_H @@ -69,10 +69,6 @@ return; } - if (bbuf.is_null) { - efree(bbuf.is_null); - } - for (i=0; i < bbuf.var_cnt; i++) { /* free temporary bind buffer */ @@ -89,9 +85,18 @@ efree(bbuf.vars); } + /* + Don't free bbuf.is_null for FETCH_RESULT since we have allocated + is_null and buf in one block so we free only buf, which is the beginning + of the block. When FETCH_SIMPLE then buf wasn't allocated together with + buf and we have to free it. + */ if (type == FETCH_RESULT) { efree(bbuf.buf); + } else if (type == FETCH_SIMPLE){ + efree(bbuf.is_null); } + bbuf.var_cnt = 0; return; } http://cvs.php.net/viewcvs.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.22.2.1&r2=1.118.2.22.2.2&diff_format=u Index: php-src/ext/mysqli/mysqli_api.c diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.1 php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.2 --- php-src/ext/mysqli/mysqli_api.c:1.118.2.22.2.1 Mon May 8 15:06:51 2006 +++ php-src/ext/mysqli/mysqli_api.c Wed May 10 11:53:13 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli_api.c,v 1.118.2.22.2.1 2006/05/08 15:06:51 andrey Exp $ + $Id: mysqli_api.c,v 1.118.2.22.2.2 2006/05/10 11:53:13 andrey Exp $ */ #ifdef HAVE_CONFIG_H @@ -250,12 +250,16 @@ } bind = (MYSQL_BIND *)ecalloc(var_cnt, sizeof(MYSQL_BIND)); - stmt->result.buf = (VAR_BUFFER *)ecalloc(var_cnt,sizeof(VAR_BUFFER)); - stmt->result.is_null = (char *)ecalloc(var_cnt, sizeof(char)); + { + int size; + char *p= emalloc(size= var_cnt * (sizeof(char) + sizeof(VAR_BUFFER))); + stmt->result.buf = (VAR_BUFFER *) p; + stmt->result.is_null = p + var_cnt * sizeof(VAR_BUFFER); + memset(p, 0, size); + } for (i=start; i < var_cnt + start ; i++) { ofs = i - start; - stmt->result.is_null[ofs] = 0; col_type = (stmt->stmt->fields) ? stmt->stmt->fields[ofs].type : MYSQL_TYPE_STRING; switch (col_type) { @@ -373,8 +377,8 @@ efree(stmt->result.buf[i].val); } } + /* Don't free stmt->result.is_null because is_null & buf are one block of memory */ efree(stmt->result.buf); - efree(stmt->result.is_null); RETVAL_FALSE; } else { stmt->result.var_cnt = var_cnt; -- 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/mysqli mysqli.c php_mysqli.h
georg Mon May 8 16:19:43 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/mysqli mysqli.c php_mysqli.h Log: moved zend_class_entry variables to mysqli.c http://cvs.php.net/viewcvs.cgi/php-src/ext/mysqli/mysqli.c?r1=1.72.2.16&r2=1.72.2.16.2.1&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.72.2.16 php-src/ext/mysqli/mysqli.c:1.72.2.16.2.1 --- php-src/ext/mysqli/mysqli.c:1.72.2.16 Sun Apr 2 09:40:19 2006 +++ php-src/ext/mysqli/mysqli.c Mon May 8 16:19:43 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: mysqli.c,v 1.72.2.16 2006/04/02 09:40:19 georg Exp $ + $Id: mysqli.c,v 1.72.2.16.2.1 2006/05/08 16:19:43 georg Exp $ */ #ifdef HAVE_CONFIG_H @@ -43,6 +43,13 @@ static HashTable mysqli_stmt_properties; static HashTable mysqli_warning_properties; +zend_class_entry *mysqli_link_class_entry; +zend_class_entry *mysqli_stmt_class_entry; +zend_class_entry *mysqli_result_class_entry; +zend_class_entry *mysqli_driver_class_entry; +zend_class_entry *mysqli_warning_class_entry; +zend_class_entry *mysqli_exception_class_entry; + extern void php_mysqli_connect(INTERNAL_FUNCTION_PARAMETERS); typedef int (*mysqli_read_t)(mysqli_object *obj, zval **retval TSRMLS_DC); http://cvs.php.net/viewcvs.cgi/php-src/ext/mysqli/php_mysqli.h?r1=1.54.2.7&r2=1.54.2.7.2.1&diff_format=u Index: php-src/ext/mysqli/php_mysqli.h diff -u php-src/ext/mysqli/php_mysqli.h:1.54.2.7 php-src/ext/mysqli/php_mysqli.h:1.54.2.7.2.1 --- php-src/ext/mysqli/php_mysqli.h:1.54.2.7Wed Apr 5 12:17:08 2006 +++ php-src/ext/mysqli/php_mysqli.h Mon May 8 16:19:43 2006 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]>| +--+ - $Id: php_mysqli.h,v 1.54.2.7 2006/04/05 12:17:08 georg Exp $ + $Id: php_mysqli.h,v 1.54.2.7.2.1 2006/05/08 16:19:43 georg Exp $ */ /* A little hack to prevent build break, when mysql is used together with @@ -161,12 +161,12 @@ extern int php_local_infile_error(void *, char *, uint); extern void php_set_local_infile_handler_default(MY_MYSQL *); extern void php_mysqli_throw_sql_exception(char *sqlstate, int errorno TSRMLS_DC, char *format, ...); -zend_class_entry *mysqli_link_class_entry; -zend_class_entry *mysqli_stmt_class_entry; -zend_class_entry *mysqli_result_class_entry; -zend_class_entry *mysqli_driver_class_entry; -zend_class_entry *mysqli_warning_class_entry; -zend_class_entry *mysqli_exception_class_entry; +extern zend_class_entry *mysqli_link_class_entry; +extern zend_class_entry *mysqli_stmt_class_entry; +extern zend_class_entry *mysqli_result_class_entry; +extern zend_class_entry *mysqli_driver_class_entry; +extern zend_class_entry *mysqli_warning_class_entry; +extern zend_class_entry *mysqli_exception_class_entry; #ifdef HAVE_SPL extern PHPAPI zend_class_entry *spl_ce_RuntimeException; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php