Commit f77bca69 authored by unknown's avatar unknown

Merge stella.local:/home2/mydev/mysql-5.0-axmrg

into  stella.local:/home2/mydev/mysql-5.1-axmrg


mysql-test/r/ctype_big5.result:
  Auto merged
mysql-test/r/ctype_euckr.result:
  Auto merged
mysql-test/r/ctype_gb2312.result:
  Auto merged
mysql-test/r/ctype_gbk.result:
  Auto merged
mysql-test/r/ctype_uca.result:
  Auto merged
mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
sql/slave.cc:
  Auto merged
mysql-test/r/federated.result:
  Manual merge from 5.0
mysql-test/t/federated.test:
  Manual merge from 5.0
storage/federated/ha_federated.cc:
  Manual merge from 5.0
parents 03c110ea 7587a871
......@@ -2090,6 +2090,8 @@ a b
1 1
DROP TABLE t1;
DROP TABLE t1;
CREATE TABLE t1 (a INT) ENGINE=federated CONNECTION='mysql://@:://';
DROP TABLE t1;
End of 5.1 tests
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
......
......@@ -1816,5 +1816,17 @@ DROP TABLE t1;
connection slave;
DROP TABLE t1;
#
# BUG#34788 - malformed federated connection url is not handled correctly -
# crashes server !
#
# also tests
#
# BUG#35509 - Federated leaks memory when connecting to localhost/default
# port
#
CREATE TABLE t1 (a INT) ENGINE=federated CONNECTION='mysql://@:://';
DROP TABLE t1;
--echo End of 5.1 tests
source include/federated_cleanup.inc;
......@@ -794,8 +794,8 @@ static int parse_url(MEM_ROOT *mem_root, FEDERATED_SHARE *share, TABLE *table,
goto error;
/*
Found that if the string is:
user:@hostname:port/db/table
Then password is a null string, so set to NULL
user:@hostname:port/db/table
Then password is a null string, so set to NULL
*/
if ((share->password[0] == '\0'))
share->password= NULL;
......@@ -833,14 +833,21 @@ Then password is a null string, so set to NULL
if ((strchr(share->table_name, '/')))
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')
share->hostname= NULL;
}
if (!share->port)
{
if (strcmp(share->hostname, my_localhost) == 0)
share->socket= (char *) MYSQL_UNIX_ADDR;
if (!share->hostname || strcmp(share->hostname, my_localhost) == 0)
share->socket= (char*) MYSQL_UNIX_ADDR;
else
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