Commit ab4f7870 authored by unknown's avatar unknown

Merge mysql.com:/home/svoj/devel/mysql/push/mysql-5.0-engines

into  mysql.com:/home/svoj/devel/mysql/push/mysql-5.1-engines


mysql-test/r/federated.result:
  Manual merge.
mysql-test/t/federated.test:
  Manual merge.
storage/federated/ha_federated.cc:
  Manual merge.
parents ca629f86 8030bdfc
...@@ -2090,6 +2090,8 @@ a b ...@@ -2090,6 +2090,8 @@ a b
1 1 1 1
DROP TABLE t1; DROP TABLE t1;
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (a INT) ENGINE=federated CONNECTION='mysql://@:://';
DROP TABLE t1;
End of 5.1 tests End of 5.1 tests
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated; DROP DATABASE IF EXISTS federated;
......
...@@ -1816,5 +1816,12 @@ DROP TABLE t1; ...@@ -1816,5 +1816,12 @@ DROP TABLE t1;
connection slave; connection slave;
DROP TABLE t1; DROP TABLE t1;
#
# BUG#34788 - malformed federated connection url is not handled correctly -
# crashes server !
#
CREATE TABLE t1 (a INT) ENGINE=federated CONNECTION='mysql://@:://';
DROP TABLE t1;
--echo End of 5.1 tests --echo End of 5.1 tests
source include/federated_cleanup.inc; source include/federated_cleanup.inc;
...@@ -833,13 +833,20 @@ Then password is a null string, so set to NULL ...@@ -833,13 +833,20 @@ Then password is a null string, so set to NULL
if ((strchr(share->table_name, '/'))) if ((strchr(share->table_name, '/')))
goto error; goto error;
/*
If hostname is omitted, we set it to NULL. According to
mysql_real_connect() manual:
The value of host may be either a hostname or an IP address.
If host is NULL or the string "localhost", a connection to the
local host is assumed.
*/
if (share->hostname[0] == '\0') if (share->hostname[0] == '\0')
share->hostname= NULL; share->hostname= NULL;
} }
if (!share->port) if (!share->port)
{ {
if (strcmp(share->hostname, my_localhost) == 0) if (!share->hostname || strcmp(share->hostname, my_localhost) == 0)
share->socket= (char *) MYSQL_UNIX_ADDR; share->socket= (char *) MYSQL_UNIX_ADDR;
else else
share->port= MYSQL_PORT; share->port= MYSQL_PORT;
......
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