Commit 998b7dca authored by unknown's avatar unknown

Merge neptunus.(none):/home/msvensson/mysql/bug15598/my41-bug15598

into  neptunus.(none):/home/msvensson/mysql/bug15598/my50-bug15598


mysql-test/t/grant.test:
  Auto merged
sql/sql_acl.cc:
  Auto merged
mysql-test/r/grant.result:
  SCCS merged
parents 57b20336 16257e8b
...@@ -437,6 +437,15 @@ delete from mysql.columns_priv where user="mysqltest_3"; ...@@ -437,6 +437,15 @@ delete from mysql.columns_priv where user="mysqltest_3";
flush privileges; flush privileges;
drop database mysqltest_1; drop database mysqltest_1;
drop database mysqltest_2; drop database mysqltest_2;
insert into mysql.user (host, user) values ('', 'mysqltest_7');
flush privileges;
set password for mysqltest_7@ = password('systpass');
show grants for mysqltest_7@;
Grants for mysqltest_7@
GRANT USAGE ON *.* TO 'mysqltest_7'@'' IDENTIFIED BY PASSWORD '*2FB071A056F9BB745219D9C876814231DAF46517'
drop user mysqltest_7@;
show grants for mysqltest_7@;
ERROR 42000: There is no such grant defined for user 'mysqltest_7' on host ''
SHOW PRIVILEGES; SHOW PRIVILEGES;
Privilege Context Comment Privilege Context Comment
Alter Tables To alter the table Alter Tables To alter the table
......
...@@ -499,4 +499,16 @@ revoke all privileges on ...@@ -499,4 +499,16 @@ revoke all privileges on
show grants for root@localhost; show grants for root@localhost;
set names latin1; set names latin1;
#
# Bug #15598 Server crashes in specific case during setting new password
# - Caused by a user with host ''
#
insert into mysql.user (host, user) values ('', 'mysqltest_7');
flush privileges;
set password for mysqltest_7@ = password('systpass');
show grants for mysqltest_7@;
drop user mysqltest_7@;
--error 1141
show grants for mysqltest_7@;
# End of 4.1 tests # End of 4.1 tests
...@@ -1528,7 +1528,8 @@ find_acl_user(const char *host, const char *user, my_bool exact) ...@@ -1528,7 +1528,8 @@ find_acl_user(const char *host, const char *user, my_bool exact)
acl_user->user && !strcmp(user,acl_user->user)) acl_user->user && !strcmp(user,acl_user->user))
{ {
if (exact ? !my_strcasecmp(&my_charset_latin1, host, if (exact ? !my_strcasecmp(&my_charset_latin1, host,
acl_user->host.hostname) : acl_user->host.hostname ?
acl_user->host.hostname : "") :
compare_hostname(&acl_user->host,host,host)) compare_hostname(&acl_user->host,host,host))
{ {
DBUG_RETURN(acl_user); DBUG_RETURN(acl_user);
...@@ -4623,7 +4624,7 @@ ACL_USER *check_acl_user(LEX_USER *user_name, ...@@ -4623,7 +4624,7 @@ ACL_USER *check_acl_user(LEX_USER *user_name,
if (!(user=acl_user->user)) if (!(user=acl_user->user))
user= ""; user= "";
if (!(host=acl_user->host.hostname)) if (!(host=acl_user->host.hostname))
host= "%"; host= "";
if (!strcmp(user_name->user.str,user) && if (!strcmp(user_name->user.str,user) &&
!my_strcasecmp(system_charset_info, user_name->host.str, host)) !my_strcasecmp(system_charset_info, user_name->host.str, host))
break; break;
......
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