List:Commits« Previous MessageNext Message »
From:Konstantin Osipov Date:October 5 2010 3:01pm
Subject:Re: bzr commit into mysql-5.1-bugteam branch (Dmitry.Shulga:3498)
Bug#36742
View as plain text  
* Dmitry Shulga <Dmitry.Shulga@stripped> [10/09/29 17:16]:

>  3498 Dmitry Shulga	2010-09-29
>       Fixed bug#36742 - GRANT hostname case handling inconsistent.
>      @ mysql-test/r/grant.result
>         It was added result for test case for bug#36742.
>      @ mysql-test/t/grant.test
>         It was added test case for bug#36742.
>      @ sql/sql_yacc.yy
>         It was added convertation of host name part of user name to lowercase.
> 
>     modified:
>       mysql-test/r/grant.result
>       mysql-test/t/grant.test
>       sql/sql_yacc.yy
> === modified file 'mysql-test/r/grant.result'
> --- a/mysql-test/r/grant.result	2010-07-08 18:46:26 +0000
> +++ b/mysql-test/r/grant.result	2010-09-29 13:10:58 +0000
> @@ -1429,3 +1429,14 @@ DROP USER 'testbug'@localhost;
>  DROP TABLE db2.t1;
>  DROP DATABASE db1;
>  DROP DATABASE db2;
> +#
> +# Bug #36742
> +#
> +grant usage on Foo.* to myuser@Localhost identified by 'foo';
> +grant select on Foo.* to myuser@localhost;
> +select host,user from mysql.user where User='myuser';
> +host	user
> +localhost	myuser
> +revoke select on Foo.* from myuser@localhost;
> +delete from mysql.user where User='myuser';
> +flush privileges;
> 
> === modified file 'mysql-test/t/grant.test'
> --- a/mysql-test/t/grant.test	2010-07-08 18:46:26 +0000
> +++ b/mysql-test/t/grant.test	2010-09-29 13:10:58 +0000
> @@ -1550,5 +1550,15 @@ DROP TABLE db2.t1;
>  DROP DATABASE db1;
>  DROP DATABASE db2;
>  
> +--echo #
> +--echo # Bug #36742
> +--echo #
> +grant usage on Foo.* to myuser@Localhost identified by 'foo';
> +grant select on Foo.* to myuser@localhost;
> +select host,user from mysql.user where User='myuser';
> +revoke select on Foo.* from myuser@localhost;
> +delete from mysql.user where User='myuser';
> +flush privileges;
> +
>  # Wait till we reached the initial number of concurrent sessions
>  --source include/wait_until_count_sessions.inc
> 
> === modified file 'sql/sql_yacc.yy'
> --- a/sql/sql_yacc.yy	2010-08-30 22:16:38 +0000
> +++ b/sql/sql_yacc.yy	2010-09-29 13:10:58 +0000
> @@ -11567,6 +11567,8 @@ user:
>                                           system_charset_info, 0) ||
>                  check_host_name(&$$->host))
>                MYSQL_YYABORT;
> +            /* Convert hostname part of username to lowercase. */

Please add a comment that it's OK to use in-place lowercase as
long as the character set is utf8.

> +            my_casedn_str(system_charset_info, $$->host.str);


I would like to see more encapsulation for MySQL User entity long
term, and case-insensitivity implemented as an invariant of a class.

I realize, however, that this is not a job for a bug fix.

It's OK to push the fix into 5.1.

-- 
Thread
bzr commit into mysql-5.1-bugteam branch (Dmitry.Shulga:3498) Bug#36742Dmitry Shulga29 Sep
  • Re: bzr commit into mysql-5.1-bugteam branch (Dmitry.Shulga:3498)Bug#36742Konstantin Osipov5 Oct
Re: bzr commit into mysql-5.1-bugteam branch (Dmitry.Shulga:3498)Bug#36742Konstantin Osipov5 Oct