]> granicus.if.org Git - php/commitdiff
MFH #46019 - Memory leak when Mysqli::init() is called multiple times.
authorScott MacVicar <scottmac@php.net>
Tue, 9 Jun 2009 01:00:47 +0000 (01:00 +0000)
committerScott MacVicar <scottmac@php.net>
Tue, 9 Jun 2009 01:00:47 +0000 (01:00 +0000)
ext/mysqli/mysqli_api.c

index aed07fc5f12bc076702fe96772a6389f8883a9d9..7cd6f32ddc7cceb8effa99b89e0133c4c39d6111 100644 (file)
@@ -1099,7 +1099,13 @@ PHP_FUNCTION(mysqli_info)
 PHP_FUNCTION(mysqli_init)
 {
        MYSQLI_RESOURCE *mysqli_resource;
-       MY_MYSQL *mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
+       MY_MYSQL *mysql;
+
+       if (getThis() && ((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->ptr) {
+               return;
+       }
+
+       mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
 
        if (!(mysql->mysql = mysql_init(NULL))) {
                efree(mysql);