Browse Source

backport #41456, commit 61847

pull/374/head
Daniel Fischer 17 years ago
parent
commit
2d1c6ed62e
  1. 5
      mysql-test/r/grant.result
  2. 7
      mysql-test/t/grant.test
  3. 7
      sql/set_var.cc

5
mysql-test/r/grant.result

@ -1151,4 +1151,9 @@ drop user 'greg'@'localhost';
drop view v1;
drop table test;
drop function test_function;
SELECT CURRENT_USER();
CURRENT_USER()
root@localhost
SET PASSWORD FOR CURRENT_USER() = PASSWORD("admin");
SET PASSWORD FOR CURRENT_USER() = PASSWORD("");
End of 5.0 tests

7
mysql-test/t/grant.test

@ -1175,4 +1175,11 @@ drop view v1;
drop table test;
drop function test_function;
#
# Bug#41456 SET PASSWORD hates CURRENT_USER()
#
SELECT CURRENT_USER();
SET PASSWORD FOR CURRENT_USER() = PASSWORD("admin");
SET PASSWORD FOR CURRENT_USER() = PASSWORD("");
--echo End of 5.0 tests

7
sql/set_var.cc

@ -3475,6 +3475,7 @@ int set_var_password::check(THD *thd)
#ifndef NO_EMBEDDED_ACCESS_CHECKS
if (!user->host.str)
{
DBUG_ASSERT(thd->security_ctx->priv_host);
if (*thd->security_ctx->priv_host != 0)
{
user->host.str= (char *) thd->security_ctx->priv_host;
@ -3486,6 +3487,12 @@ int set_var_password::check(THD *thd)
user->host.length= 1;
}
}
if (!user->user.str)
{
DBUG_ASSERT(thd->security_ctx->priv_user);
user->user.str= (char *) thd->security_ctx->priv_user;
user->user.length= strlen(thd->security_ctx->priv_user);
}
/* Returns 1 as the function sends error to client */
return check_change_password(thd, user->host.str, user->user.str,
password, strlen(password)) ? 1 : 0;

Loading…
Cancel
Save