summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2014-08-21 21:25:22 +0200
committerSergei Golubchik <sergii@pisem.net>2014-08-21 21:25:22 +0200
commit57a43b843520ab8c863ecf3b862065eed88ef777 (patch)
treec17e1fb2ed4a3d67c4379b02391fd97050911b9d
parentb5ebc21169d3f27f29cc2bd66ce86dbcb95be7e7 (diff)
downloadmariadb-git-57a43b843520ab8c863ecf3b862065eed88ef777.tar.gz
MDEV-6625 SHOW GRANTS for current_user_name@wrong_host_name
-rw-r--r--mysql-test/r/grant5.result2
-rw-r--r--mysql-test/t/grant5.test7
-rw-r--r--sql/sql_parse.cc5
3 files changed, 12 insertions, 2 deletions
diff --git a/mysql-test/r/grant5.result b/mysql-test/r/grant5.result
new file mode 100644
index 00000000000..2df394c0432
--- /dev/null
+++ b/mysql-test/r/grant5.result
@@ -0,0 +1,2 @@
+SHOW GRANTS FOR root@invalid_host;
+ERROR 42000: There is no such grant defined for user 'root' on host 'invalid_host'
diff --git a/mysql-test/t/grant5.test b/mysql-test/t/grant5.test
new file mode 100644
index 00000000000..db953d97fb3
--- /dev/null
+++ b/mysql-test/t/grant5.test
@@ -0,0 +1,7 @@
+-- source include/not_embedded.inc
+
+#
+# MDEV-6625 SHOW GRANTS for current_user_name@wrong_host_name
+#
+--error ER_NONEXISTING_GRANT
+SHOW GRANTS FOR root@invalid_host;
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 4070a833f82..30fcac6e12a 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -4335,8 +4335,9 @@ end_with_restore_list:
if (!grant_user)
goto error;
- if (grant_user->user.str &&
- !strcmp(thd->security_ctx->priv_user, grant_user->user.str))
+ if (grant_user->user.str && grant_user->host.str &&
+ !strcmp(thd->security_ctx->priv_user, grant_user->user.str) &&
+ !strcmp(thd->security_ctx->priv_host, grant_user->host.str))
grant_user->user= current_user;
if (grant_user->user.str == current_user.str ||