summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-01-28 02:10:56 +0200
committerunknown <monty@mashka.mysql.fi>2003-01-28 02:10:56 +0200
commitc46c1258274f4993e5c5cc30cd0d4137d611db5f (patch)
tree8e1aadd95b0931e3a27eb8e78ba1338bdeced602
parent8d25a3fd942c06bb6c5bdff53b07bfa78fcc6bd6 (diff)
downloadmariadb-git-c46c1258274f4993e5c5cc30cd0d4137d611db5f.tar.gz
Make PACKET_TOO_LARGE error handling safer in client
libmysql/libmysql.c: Make PACKET_TOO_LARGE error handling safer
-rw-r--r--libmysql/libmysql.c20
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;