sql_parse.cc:

  Fix for the bug 1175: Usernames will not converted to utf8 during connect
parent b15ea37f
...@@ -834,6 +834,7 @@ static int check_connection(THD *thd) ...@@ -834,6 +834,7 @@ static int check_connection(THD *thd)
char *passwd= strend(user)+1; char *passwd= strend(user)+1;
char *db= passwd; char *db= passwd;
char db_buff[NAME_LEN+1]; // buffer to store db in utf8 char db_buff[NAME_LEN+1]; // buffer to store db in utf8
char user_buff[USERNAME_LENGTH+1]; // buffer to store user in utf8
/* /*
Old clients send null-terminated string as password; new clients send Old clients send null-terminated string as password; new clients send
the size (1 byte) + string (not null-terminated). Hence in case of empty the size (1 byte) + string (not null-terminated). Hence in case of empty
...@@ -854,6 +855,14 @@ static int check_connection(THD *thd) ...@@ -854,6 +855,14 @@ static int check_connection(THD *thd)
db= db_buff; db= db_buff;
} }
if (user)
{
user_buff[copy_and_convert(user_buff, sizeof(user_buff)-1,
system_charset_info, user, strlen(user),
thd->charset())]= '\0';
user= user_buff;
}
if (thd->user) if (thd->user)
x_free(thd->user); x_free(thd->user);
if (!(thd->user= my_strdup(user, MYF(0)))) if (!(thd->user= my_strdup(user, MYF(0))))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment