mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/51
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/51 client/mysqldump.c: Auto merged include/m_string.h: Auto merged include/mysql_com.h: Auto merged include/violite.h: Auto merged libmysql/libmysql.c: Auto merged mysql-test/include/mix1.inc: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/r/innodb_mysql.result: Auto merged mysql-test/r/ps.result: Auto merged mysql-test/t/mysqltest.test: Auto merged mysql-test/t/ps.test: Auto merged mysys/my_init.c: Auto merged server-tools/instance-manager/mysql_connection.cc: Auto merged sql/field.cc: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/net_serv.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_connect.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_repl.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql-common/client.c: Auto merged sql/sql_yacc.yy: Auto merged strings/ctype-mb.c: Auto merged strings/ctype-ucs2.c: Auto merged strings/strtod.c: Auto merged vio/vio_priv.h: Auto merged vio/viosocket.c: Auto merged client/mysqltest.c: SCCS merged include/my_global.h: SCCS merged sql/field.h: SCCS merged sql/sql_table.cc: Manual merge strings/ctype-bin.c: Manual merge
This commit is contained in:
@ -147,12 +147,12 @@ int Mysql_connection::check_connection()
|
||||
ulong pkt_len=0; // to hold client reply length
|
||||
|
||||
/* buffer for the first packet */ /* packet contains: */
|
||||
char buff[MAX_VERSION_LENGTH + 1 + // server version, 0-ended
|
||||
4 + // connection id
|
||||
SCRAMBLE_LENGTH + 2 + // scramble (in 2 pieces)
|
||||
18]; // server variables: flags,
|
||||
uchar buff[MAX_VERSION_LENGTH + 1 + // server version, 0-ended
|
||||
4 + // connection id
|
||||
SCRAMBLE_LENGTH + 2 + // scramble (in 2 pieces)
|
||||
18]; // server variables: flags,
|
||||
// charset number, status,
|
||||
char *pos= buff;
|
||||
uchar *pos= buff;
|
||||
ulong server_flags;
|
||||
|
||||
memcpy(pos, mysqlmanager_version.str, mysqlmanager_version.length + 1);
|
||||
@ -195,7 +195,8 @@ int Mysql_connection::check_connection()
|
||||
|
||||
/* write connection message and read reply */
|
||||
enum { MIN_HANDSHAKE_SIZE= 2 };
|
||||
if (net_write_command(&net, protocol_version, "", 0, buff, pos - buff) ||
|
||||
if (net_write_command(&net, protocol_version, (uchar*) "", 0,
|
||||
buff, pos - buff) ||
|
||||
(pkt_len= my_net_read(&net)) == packet_error ||
|
||||
pkt_len < MIN_HANDSHAKE_SIZE)
|
||||
{
|
||||
@ -211,17 +212,17 @@ int Mysql_connection::check_connection()
|
||||
}
|
||||
client_capabilities|= ((ulong) uint2korr(net.read_pos + 2)) << 16;
|
||||
|
||||
pos= (char*) net.read_pos + 32;
|
||||
pos= net.read_pos + 32;
|
||||
|
||||
/* At least one byte for username and one byte for password */
|
||||
if (pos >= (char*) net.read_pos + pkt_len + 2)
|
||||
if (pos >= net.read_pos + pkt_len + 2)
|
||||
{
|
||||
/*TODO add user and password handling in error messages*/
|
||||
net_send_error(&net, ER_HANDSHAKE_ERROR);
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char *user= pos;
|
||||
const char *user= (char*) pos;
|
||||
const char *password= strend(user)+1;
|
||||
ulong password_len= *password++;
|
||||
LEX_STRING user_name= { (char *) user, password - user - 2 };
|
||||
|
Reference in New Issue
Block a user