From: Andrey Hristov Date: Tue, 22 Jul 2008 23:44:23 +0000 (+0000) Subject: MFH: Two less failing tests, one of which was definitely a leak in mysqli with mysqlnd X-Git-Tag: php-5.3.0alpha1~203 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8c56a23a2659ee240524d568110133e0e80543dd;p=php MFH: Two less failing tests, one of which was definitely a leak in mysqli with mysqlnd and pconn. ext/mysql is being fixed with a better fix for similar leak. --- diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index 6908b294bd..237bdb54e8 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -794,6 +794,9 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) mysql->active_result_id = 0; mysql->multi_query = client_flags & CLIENT_MULTI_STATEMENTS? 1:0; /* ensure that the link did not die */ +#if defined(MYSQL_USE_MYSQLND) + mysqlnd_end_psession(mysql->conn); +#endif if (mysql_ping(mysql->conn)) { if (mysql_errno(mysql->conn) == 2006) { #ifndef MYSQL_USE_MYSQLND diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index 8c67e30799..4cc654e274 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -162,8 +162,12 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne mysql->mysql = zend_ptr_stack_pop(&plist->free_links); MyG(num_inactive_persistent)--; +#if defined(MYSQLI_USE_MYSQLND) + mysqlnd_end_psession(mysql->mysql); +#endif /* reset variables */ /* todo: option for ping or change_user */ + #if G0 if (!mysql_change_user(mysql->mysql, username, passwd, dbname)) { #else @@ -175,9 +179,6 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne MyG(num_active_persistent)++; goto end; } else { -#if defined(MYSQLI_USE_MYSQLND) - mysqlnd_end_psession(mysql->mysql); -#endif mysqli_close(mysql->mysql, MYSQLI_CLOSE_IMPLICIT); mysql->mysql = NULL; }