From: Nikita Popov Date: Wed, 26 Jun 2019 14:51:12 +0000 (+0200) Subject: Fix persistent connection leak in mysqli X-Git-Tag: php-7.4.0alpha3~166 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2f0f895284f71c77754b52807a03a5e336419449;p=php Fix persistent connection leak in mysqli --- diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index d6c474b7f3..2f272935b3 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -162,6 +162,12 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne do { if (zend_ptr_stack_num_elements(&plist->free_links)) { + /* If we have an initialized (but unconnected) mysql resource, + * close it before we reuse an existing persistent resource. */ + if (mysql->mysql) { + mysqli_close(mysql->mysql, MYSQLI_CLOSE_IMPLICIT); + } + mysql->mysql = zend_ptr_stack_pop(&plist->free_links); MyG(num_inactive_persistent)--;