diff options
author | antony@pcg5ppc.xiphis.org <> | 2008-03-07 13:46:29 -0800 |
---|---|---|
committer | antony@pcg5ppc.xiphis.org <> | 2008-03-07 13:46:29 -0800 |
commit | 820068f1b71454284e4e442cc6451ab6c2ee3999 (patch) | |
tree | 5eca346659ddf3033d7dcf7b2af9b45a8f391a92 /sql/repl_failsafe.cc | |
parent | d4025ce1a60322635bf5f7adb765f4612563ee3a (diff) | |
parent | 38f91fc2778cfc3ecb14c8b0de2b13cf164411c8 (diff) | |
download | mariadb-git-820068f1b71454284e4e442cc6451ab6c2ee3999.tar.gz |
Merge pcg5ppc.xiphis.org:/Network/Servers/anubis.xiphis.org/home/antony/work/mysql-5.1-engines
into pcg5ppc.xiphis.org:/Network/Servers/anubis.xiphis.org/home/antony/work/merge.20080307/mysql-5.1
Diffstat (limited to 'sql/repl_failsafe.cc')
-rw-r--r-- | sql/repl_failsafe.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sql/repl_failsafe.cc b/sql/repl_failsafe.cc index a8953217ce1..10f32aa5827 100644 --- a/sql/repl_failsafe.cc +++ b/sql/repl_failsafe.cc @@ -118,11 +118,14 @@ void change_rpl_status(RPL_STATUS from_status, RPL_STATUS to_status) } -#define get_object(p, obj) \ +#define get_object(p, obj, msg) \ {\ uint len = (uint)*p++; \ if (p + len > p_end || len >= sizeof(obj)) \ + {\ + errmsg= msg;\ goto err; \ + }\ strmake(obj,(char*) p,len); \ p+= len; \ }\ @@ -168,6 +171,7 @@ int register_slave(THD* thd, uchar* packet, uint packet_length) int res; SLAVE_INFO *si; uchar *p= packet, *p_end= packet + packet_length; + const char *errmsg= "Wrong parameters to function register_slave"; if (check_access(thd, REPL_SLAVE_ACL, any_db,0,0,0,0)) return 1; @@ -176,9 +180,9 @@ int register_slave(THD* thd, uchar* packet, uint packet_length) thd->server_id= si->server_id= uint4korr(p); p+= 4; - get_object(p,si->host); - get_object(p,si->user); - get_object(p,si->password); + get_object(p,si->host, "Failed to register slave: too long 'report-host'"); + get_object(p,si->user, "Failed to register slave: too long 'report-user'"); + get_object(p,si->password, "Failed to register slave; too long 'report-password'"); if (p+10 > p_end) goto err; si->port= uint2korr(p); @@ -197,8 +201,7 @@ int register_slave(THD* thd, uchar* packet, uint packet_length) err: my_free(si, MYF(MY_WME)); - my_message(ER_UNKNOWN_ERROR, "Wrong parameters to function register_slave", - MYF(0)); + my_message(ER_UNKNOWN_ERROR, errmsg, MYF(0)); err2: return 1; } |