mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
bug in libmysql.c:mysql_reconnect() fixed
libmysql/libmysql.c: bug fixed (if mysql_real_connect() failed there were two pointers to malloc'ed strings, with memory corruption on free(), of course)
This commit is contained in:
@ -1572,13 +1572,13 @@ static my_bool mysql_reconnect(MYSQL *mysql)
|
|||||||
}
|
}
|
||||||
mysql_init(&tmp_mysql);
|
mysql_init(&tmp_mysql);
|
||||||
tmp_mysql.options=mysql->options;
|
tmp_mysql.options=mysql->options;
|
||||||
|
bzero((char*) &mysql->options,sizeof(mysql->options));
|
||||||
if (!mysql_real_connect(&tmp_mysql,mysql->host,mysql->user,mysql->passwd,
|
if (!mysql_real_connect(&tmp_mysql,mysql->host,mysql->user,mysql->passwd,
|
||||||
mysql->db, mysql->port, mysql->unix_socket,
|
mysql->db, mysql->port, mysql->unix_socket,
|
||||||
mysql->client_flag))
|
mysql->client_flag))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
tmp_mysql.free_me=mysql->free_me;
|
tmp_mysql.free_me=mysql->free_me;
|
||||||
mysql->free_me=0;
|
mysql->free_me=0;
|
||||||
bzero((char*) &mysql->options,sizeof(mysql->options));
|
|
||||||
mysql_close(mysql);
|
mysql_close(mysql);
|
||||||
*mysql=tmp_mysql;
|
*mysql=tmp_mysql;
|
||||||
net_clear(&mysql->net);
|
net_clear(&mysql->net);
|
||||||
|
Reference in New Issue
Block a user