diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-04-18 22:17:29 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-04-18 22:17:29 +0200 |
commit | 84ce6832e64305a769fb424d272311468b5d1d0d (patch) | |
tree | d2a25ca91f63d312f0b2d09ccba012ecd102a7ba /sql/sql_repl.cc | |
parent | 07315d36030bd1cbe6acfeb3e8f60c49ba876a10 (diff) | |
download | mariadb-git-84ce6832e64305a769fb424d272311468b5d1d0d.tar.gz |
MDEV-4332 Increase username length from 16 characters
Diffstat (limited to 'sql/sql_repl.cc')
-rw-r--r-- | sql/sql_repl.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index d2f942643a9..b8a12b1ea8a 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -1555,14 +1555,15 @@ void kill_zombie_dump_threads(uint32 slave_server_id) */ static bool get_string_parameter(char *to, const char *from, size_t length, - const char *name) + const char *name, CHARSET_INFO *cs) { if (from) // Empty paramaters allowed { - size_t from_length; - if ((from_length= strlen(from)) > length) + size_t from_length= strlen(from); + uint from_numchars= cs->cset->numchars(cs, from, from + from_length); + if (from_numchars > length / cs->mbmaxlen) { - my_error(ER_WRONG_STRING_LENGTH, MYF(0), from, name, (int) length); + my_error(ER_WRONG_STRING_LENGTH, MYF(0), from, name, length / cs->mbmaxlen); return 1; } memcpy(to, from, from_length+1); @@ -1662,11 +1663,12 @@ bool change_master(THD* thd, Master_info* mi) DBUG_PRINT("info", ("master_log_pos: %lu", (ulong) mi->master_log_pos)); if (get_string_parameter(mi->host, lex_mi->host, sizeof(mi->host)-1, - "MASTER_HOST") || + "MASTER_HOST", system_charset_info) || get_string_parameter(mi->user, lex_mi->user, sizeof(mi->user)-1, - "MASTER_USER") || + "MASTER_USER", system_charset_info) || get_string_parameter(mi->password, lex_mi->password, - sizeof(mi->password)-1, "MASTER_PASSWORD")) + sizeof(mi->password)-1, "MASTER_PASSWORD", + &my_charset_bin)) { ret= TRUE; goto err; |