diff options
author | Georg Richter <georg@php.net> | 2003-12-31 08:34:02 +0000 |
---|---|---|
committer | Georg Richter <georg@php.net> | 2003-12-31 08:34:02 +0000 |
commit | c10072d0672fdf13813ed07bc198a3e302a0e557 (patch) | |
tree | 9c9ee4743d6244178cf31d36fe3d42c4f91b7f12 /ext/mysqli/mysqli_nonapi.c | |
parent | cd9342fb8441a6f100376b6f2950d5f3e5b9d88a (diff) | |
download | php-git-c10072d0672fdf13813ed07bc198a3e302a0e557.tar.gz |
fixed memleak and segfault when constructor call failed
Diffstat (limited to 'ext/mysqli/mysqli_nonapi.c')
-rw-r--r-- | ext/mysqli/mysqli_nonapi.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index 2a50d773c8..fab4f840bb 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -33,13 +33,14 @@ Open a connection to a mysql server */ PHP_FUNCTION(mysqli_connect) { - MYSQL *mysql; + MYSQL *mysql = NULL; MYSQLI_RESOURCE *mysqli_resource; zval *object = getThis(); char *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, *socket=NULL; unsigned int hostname_len, username_len, passwd_len, dbname_len, socket_len; unsigned int port=0; + if (getThis() && !ZEND_NUM_ARGS()) { RETURN_NULL(); } @@ -89,6 +90,7 @@ PHP_FUNCTION(mysqli_connect) MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry); } else { ((mysqli_object *) zend_object_store_get_object(object TSRMLS_CC))->ptr = mysqli_resource; + ((mysqli_object *) zend_object_store_get_object(object TSRMLS_CC))->valid = 1; } } /* }}} */ |