mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
SET PASSWORD bugfixes:
* work as documented, use CURRENT_USER() * move the check for ER_PASSWORD_ANONYMOUS_USER where it can actually work
This commit is contained in:
@ -2883,20 +2883,25 @@ int check_change_password(THD *thd, const char *host, const char *user,
|
||||
my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--skip-grant-tables");
|
||||
return(1);
|
||||
}
|
||||
if (!thd->slave_thread && !thd->security_ctx->priv_user[0])
|
||||
{
|
||||
my_message(ER_PASSWORD_ANONYMOUS_USER, ER(ER_PASSWORD_ANONYMOUS_USER),
|
||||
MYF(0));
|
||||
return(1);
|
||||
}
|
||||
if (!host) // Role
|
||||
{
|
||||
my_error(ER_PASSWORD_NO_MATCH, MYF(0));
|
||||
return 1;
|
||||
}
|
||||
if (!thd->slave_thread &&
|
||||
(strcmp(thd->security_ctx->user, user) ||
|
||||
(strcmp(thd->security_ctx->priv_user, user) ||
|
||||
my_strcasecmp(system_charset_info, host,
|
||||
thd->security_ctx->priv_host)))
|
||||
{
|
||||
if (check_access(thd, UPDATE_ACL, "mysql", NULL, NULL, 1, 0))
|
||||
return(1);
|
||||
}
|
||||
if (!thd->slave_thread && !thd->security_ctx->user[0])
|
||||
{
|
||||
my_message(ER_PASSWORD_ANONYMOUS_USER, ER(ER_PASSWORD_ANONYMOUS_USER),
|
||||
MYF(0));
|
||||
return(1);
|
||||
}
|
||||
size_t len= strlen(new_password);
|
||||
if (len && len != SCRAMBLED_PASSWORD_CHAR_LENGTH &&
|
||||
len != SCRAMBLED_PASSWORD_CHAR_LENGTH_323)
|
||||
@ -3037,7 +3042,7 @@ end:
|
||||
|
||||
RETURN
|
||||
FALSE user not fond
|
||||
TRUE there are such user
|
||||
TRUE there is such user
|
||||
*/
|
||||
|
||||
bool is_acl_user(const char *host, const char *user)
|
||||
|
Reference in New Issue
Block a user