diff options
author | Andrey Hristov <andrey@php.net> | 2010-09-30 18:10:03 +0000 |
---|---|---|
committer | Andrey Hristov <andrey@php.net> | 2010-09-30 18:10:03 +0000 |
commit | 77d73b814bc388e7dab0a68d371c03b7189f63b2 (patch) | |
tree | b6933761ee0dd634ea96d346bc5d0e62cae93be8 /ext/mysqli/mysqli_api.c | |
parent | 53d3320951d731c15ae9adfecb4881e94c230e37 (diff) | |
download | php-git-77d73b814bc388e7dab0a68d371c03b7189f63b2.tar.gz |
Plug a leak in mysqli when in the same script
a pconn is reused.
Call end_psession earlier - so will mysqlnd and
the plugins free data earlier.
Diffstat (limited to 'ext/mysqli/mysqli_api.c')
-rw-r--r-- | ext/mysqli/mysqli_api.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 644598225f..6b8891dd8b 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -588,6 +588,9 @@ void php_mysqli_close(MY_MYSQL * mysql, int close_type, int resource_status TSRM if (zend_hash_find(&EG(persistent_list), mysql->hash_key, strlen(mysql->hash_key) + 1, (void **)&le) == SUCCESS) { if (Z_TYPE_P(le) == php_le_pmysqli()) { mysqli_plist_entry *plist = (mysqli_plist_entry *) le->ptr; +#if defined(MYSQLI_USE_MYSQLND) + mysqlnd_end_psession(mysql->mysql); +#endif zend_ptr_stack_push(&plist->free_links, mysql->mysql); MyG(num_active_persistent)--; |