From e8085d1b4147b43bbed22f2f7befd4f2b2fa178f Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Tue, 16 Feb 2016 12:49:59 +0400 Subject: [PATCH] MDEV-9346 - The federatedx and spider engine make mysqld crash when they are configured withtout username Federated/spider/connect engines or replication threads connecting to other host with empty user name may crash mysqld. This is addition to original patch, which adds a test case and amends a macro. --- mysql-test/suite/federated/federatedx.result | 6 ++++++ mysql-test/suite/federated/federatedx.test | 9 +++++++++ sql/client_settings.h | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/federated/federatedx.result b/mysql-test/suite/federated/federatedx.result index c93ff1493d9..7dfcfd9f359 100644 --- a/mysql-test/suite/federated/federatedx.result +++ b/mysql-test/suite/federated/federatedx.result @@ -2157,6 +2157,12 @@ DROP TABLE federated.t1; End of 5.1 tests SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT; SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT; +# +# MDEV-9346 - The federatedx and spider engine make mysqld crash when +# they are configured withtout username +# +CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='mysql://@127.0.0.1:SLAVE_PORT/federated/t1'; +ERROR HY000: Can't create federated table. Foreign data src error: database: 'federated' username: '' hostname: '127.0.0.1' DROP TABLE IF EXISTS federated.t1; DROP DATABASE IF EXISTS federated; DROP TABLE IF EXISTS federated.t1; diff --git a/mysql-test/suite/federated/federatedx.test b/mysql-test/suite/federated/federatedx.test index 818cc2c1681..5e405dd8d09 100644 --- a/mysql-test/suite/federated/federatedx.test +++ b/mysql-test/suite/federated/federatedx.test @@ -2000,4 +2000,13 @@ SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT; connection default; +--echo # +--echo # MDEV-9346 - The federatedx and spider engine make mysqld crash when +--echo # they are configured withtout username +--echo # +connection master; +--replace_result $SLAVE_MYPORT SLAVE_PORT +--error ER_CANT_CREATE_FEDERATED_TABLE +eval CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='mysql://@127.0.0.1:$SLAVE_MYPORT/federated/t1'; + source include/federated_cleanup.inc; diff --git a/sql/client_settings.h b/sql/client_settings.h index 1397c1f1e23..f2ad1797b8e 100644 --- a/sql/client_settings.h +++ b/sql/client_settings.h @@ -37,7 +37,7 @@ CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA | \ CLIENT_CONNECT_ATTRS) -#define read_user_name(A) {strmov(A,"");} +#define read_user_name(A) A[0]= 0 #undef _CUSTOMCONFIG_ #define mysql_server_init(a,b,c) mysql_client_plugin_init()