summaryrefslogtreecommitdiff
path: root/ext/mysqli/mysqli_api.c
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2008-09-19 11:35:37 +0000
committerAndrey Hristov <andrey@php.net>2008-09-19 11:35:37 +0000
commit722b9135d9b4c43fab62ff73ea9e106e1455d5da (patch)
tree844ce100011cf70d6aa55e2babedaa9f7f9290b2 /ext/mysqli/mysqli_api.c
parentd17dab311f96f6b3ddeac4133b98ceb59fa0b9b0 (diff)
downloadphp-git-722b9135d9b4c43fab62ff73ea9e106e1455d5da.tar.gz
Fix for bug#46019 MySQLi::init() leaks memory
Diffstat (limited to 'ext/mysqli/mysqli_api.c')
-rw-r--r--ext/mysqli/mysqli_api.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
index 44f103628c..be5a5223e0 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -1364,7 +1364,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() && instanceof_function(Z_OBJCE_P(getThis()), mysqli_link_class_entry TSRMLS_CC)) {
+ return;
+ }
+
+ mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
#if !defined(MYSQLI_USE_MYSQLND)
if (!(mysql->mysql = mysql_init(NULL)))