From 6c9e73f72b221c71d01a4d89c19b40e374097ea4 Mon Sep 17 00:00:00 2001 From: Georg Richter Date: Mon, 27 Dec 2004 15:40:40 +0000 Subject: [PATCH] fixed possible leak in mysqli_init fixed testcase 047.phpt --- ext/mysqli/mysqli_api.c | 5 +++-- ext/mysqli/tests/047.phpt | 14 +++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 85758c01da..b80beba4d4 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -983,14 +983,15 @@ PHP_FUNCTION(mysqli_info) Initialize mysqli and return a resource for use with mysql_real_connect */ PHP_FUNCTION(mysqli_init) { + MYSQLI_RESOURCE *mysqli_resource; MY_MYSQL *mysql = (MY_MYSQL *)calloc(1, sizeof(MY_MYSQL)); - MYSQLI_RESOURCE *mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); - if (!(mysql->mysql = mysql_init(NULL))) { efree(mysql); RETURN_FALSE; } + + mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = (void *)mysql; MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry); } diff --git a/ext/mysqli/tests/047.phpt b/ext/mysqli/tests/047.phpt index 56acddd688..d6ccb0df37 100644 --- a/ext/mysqli/tests/047.phpt +++ b/ext/mysqli/tests/047.phpt @@ -12,7 +12,7 @@ mysqli_get_metadata mysqli_select_db($link, "test"); mysqli_query($link, "DROP TABLE IF EXISTS test_affected"); - mysqli_query($link, "CREATE TABLE test_affected (foo int, bar varchar(10))"); + mysqli_query($link, "CREATE TABLE test_affected (foo int, bar varchar(10) character set latin1)"); mysqli_query($link, "INSERT INTO test_affected VALUES (1, 'Zak'),(2, 'Greant')"); @@ -31,7 +31,7 @@ mysqli_get_metadata --EXPECTF-- array(2) { [0]=> - object(stdClass)#%d (9) { + object(stdClass)#4 (11) { ["name"]=> string(3) "foo" ["orgname"]=> @@ -44,6 +44,10 @@ array(2) { string(0) "" ["max_length"]=> int(0) + ["length"]=> + int(11) + ["charsetnr"]=> + int(63) ["flags"]=> int(32768) ["type"]=> @@ -52,7 +56,7 @@ array(2) { int(0) } [1]=> - object(stdClass)#%d (9) { + object(stdClass)#5 (11) { ["name"]=> string(3) "bar" ["orgname"]=> @@ -65,6 +69,10 @@ array(2) { string(0) "" ["max_length"]=> int(0) + ["length"]=> + int(10) + ["charsetnr"]=> + int(8) ["flags"]=> int(0) ["type"]=> -- 2.40.0