diff options
author | monty@narttu.mysql.fi <> | 2003-06-24 12:10:35 +0300 |
---|---|---|
committer | monty@narttu.mysql.fi <> | 2003-06-24 12:10:35 +0300 |
commit | 1bd306ccd49e0ea6b9c91339b78b7b73f4137abd (patch) | |
tree | 415b1821c33eac5fc78fcb02664dfd546daa9406 /sql-common | |
parent | 7b7892afad1179fb0b0b7c3e920e9ee6a8709381 (diff) | |
download | mariadb-git-1bd306ccd49e0ea6b9c91339b78b7b73f4137abd.tar.gz |
Fixed some new memory leaks
Updated VC++ files
Diffstat (limited to 'sql-common')
-rw-r--r-- | sql-common/client.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sql-common/client.c b/sql-common/client.c index 33f2b996971..721164c8301 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -2022,7 +2022,6 @@ my_bool mysql_reconnect(MYSQL *mysql) } mysql_init(&tmp_mysql); tmp_mysql.options=mysql->options; - bzero((char*) &mysql->options,sizeof(mysql->options)); tmp_mysql.rpl_pivot = mysql->rpl_pivot; if (!mysql_real_connect(&tmp_mysql,mysql->host,mysql->user,mysql->passwd, mysql->db, mysql->port, mysql->unix_socket, @@ -2033,7 +2032,9 @@ my_bool mysql_reconnect(MYSQL *mysql) strmov(mysql->net.sqlstate, tmp_mysql.net.sqlstate); DBUG_RETURN(1); } - tmp_mysql.free_me=mysql->free_me; + tmp_mysql.free_me= mysql->free_me; + /* Don't free options as these are now used in tmp_mysql */ + bzero((char*) &mysql->options,sizeof(mysql->options)); mysql->free_me=0; mysql_close(mysql); *mysql=tmp_mysql; @@ -2070,9 +2071,6 @@ mysql_select_db(MYSQL *mysql, const char *db) static void mysql_close_free_options(MYSQL *mysql) { - my_free(mysql->user,MYF(MY_ALLOW_ZERO_PTR)); - my_free(mysql->passwd,MYF(MY_ALLOW_ZERO_PTR)); - my_free(mysql->db,MYF(MY_ALLOW_ZERO_PTR)); my_free(mysql->options.user,MYF(MY_ALLOW_ZERO_PTR)); my_free(mysql->options.host,MYF(MY_ALLOW_ZERO_PTR)); my_free(mysql->options.password,MYF(MY_ALLOW_ZERO_PTR)); @@ -2099,14 +2097,17 @@ static void mysql_close_free_options(MYSQL *mysql) if (mysql->options.shared_memory_base_name != def_shared_memory_base_name) my_free(mysql->options.shared_memory_base_name,MYF(MY_ALLOW_ZERO_PTR)); #endif /* HAVE_SMEM */ - bzero((char*) &mysql->options,sizeof(mysql->options)); + bzero((char*) &mysql->options,sizeof(mysql->options)); } static void mysql_close_free(MYSQL *mysql) { - /* Clear pointers for better safety */ my_free((gptr) mysql->host_info,MYF(MY_ALLOW_ZERO_PTR)); + my_free(mysql->user,MYF(MY_ALLOW_ZERO_PTR)); + my_free(mysql->passwd,MYF(MY_ALLOW_ZERO_PTR)); + my_free(mysql->db,MYF(MY_ALLOW_ZERO_PTR)); + /* Clear pointers for better safety */ mysql->host_info=mysql->user=mysql->passwd=mysql->db=0; } |