diff options
author | unknown <monty@mashka.mysql.fi> | 2003-01-28 02:10:56 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2003-01-28 02:10:56 +0200 |
commit | c46c1258274f4993e5c5cc30cd0d4137d611db5f (patch) | |
tree | 8e1aadd95b0931e3a27eb8e78ba1338bdeced602 /libmysql | |
parent | 8d25a3fd942c06bb6c5bdff53b07bfa78fcc6bd6 (diff) | |
download | mariadb-git-c46c1258274f4993e5c5cc30cd0d4137d611db5f.tar.gz |
Make PACKET_TOO_LARGE error handling safer in client
libmysql/libmysql.c:
Make PACKET_TOO_LARGE error handling safer
Diffstat (limited to 'libmysql')
-rw-r--r-- | libmysql/libmysql.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 13244a70fcc..179a942828c 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -460,19 +460,17 @@ simple_command(MYSQL *mysql,enum enum_server_command command, const char *arg, { net->last_errno=CR_NET_PACKET_TOO_LARGE; strmov(net->last_error,ER(net->last_errno)); - return(packet_error); + goto end; } - else + end_server(mysql); + if (mysql_reconnect(mysql)) + goto end; + if (net_write_command(net,(uchar) command,arg, + length ? length : (ulong) strlen(arg))) { - end_server(mysql); - if (mysql_reconnect(mysql) || - net_write_command(net,(uchar) command,arg, - length ? length : (ulong) strlen(arg))) - { - net->last_errno=CR_SERVER_GONE_ERROR; - strmov(net->last_error,ER(net->last_errno)); - goto end; - } + net->last_errno= CR_SERVER_GONE_ERROR; + strmov(net->last_error,ER(net->last_errno)); + goto end; } } result=0; |