mirror of
https://github.com/MariaDB/server.git
synced 2025-08-29 00:08:14 +03:00
Fixes for mysql-test failures
mysql-test/r/acl_roles_show_grants.result: one can do SHOW GRANTS for himself mysql-test/t/acl_roles_set_role-table-column-priv.test: correct error message mysql-test/t/acl_roles_show_grants.test: one can SHOW GRANTS for himself sql/sql_acl.cc: bugfixing: * don't assign with && - it can shortcut and the second assignment won't be executed * correct the test in check_grant_all_columns() - want_access should not be modified * sql/sql_cmd.h.OTHER: add new commands at the end sql/sql_db.cc: don't call acl_get() if all privileges are already satisfied (crashes when run with --skip-grants, because acl data stuctures aren't initialized) sql/sql_parse.cc: * test for current_user in get_current_user() * map explicitly specified user@host to current_user
This commit is contained in:
@@ -4001,6 +4001,11 @@ end_with_restore_list:
|
||||
LEX_USER *grant_user= lex->grant_user;
|
||||
if (!grant_user)
|
||||
goto error;
|
||||
|
||||
if (grant_user->user.str &&
|
||||
!strcmp(thd->security_ctx->priv_user, grant_user->user.str))
|
||||
grant_user= ¤t_user;
|
||||
|
||||
if (grant_user == ¤t_user ||
|
||||
grant_user == ¤t_role ||
|
||||
grant_user == ¤t_user_and_current_role ||
|
||||
@@ -7752,7 +7757,7 @@ LEX_USER *create_definer(THD *thd, LEX_STRING *user_name, LEX_STRING *host_name)
|
||||
|
||||
LEX_USER *get_current_user(THD *thd, LEX_USER *user)
|
||||
{
|
||||
if (!user->user.str) // current_user
|
||||
if (user == ¤t_user) // current_user
|
||||
return create_default_definer(thd);
|
||||
|
||||
return user;
|
||||
|
Reference in New Issue
Block a user