summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <kaa@polly.local>2007-06-07 10:26:04 +0400
committerunknown <kaa@polly.local>2007-06-07 10:26:04 +0400
commitcdb9759ef106dc7517d6468a879c2014c06794d0 (patch)
tree04ebbf9fe0ae052bdfc0963e6262dd891915470e
parentf5bc5381ae6142c4de27b282fb9cd63130b174f6 (diff)
parent3ac87034ca389be09ce80d982f0e13f653f98cb4 (diff)
downloadmariadb-git-cdb9759ef106dc7517d6468a879c2014c06794d0.tar.gz
Merge polly.local:/home/kaa/src/maint/bug28895/my50-bug28895
into polly.local:/home/kaa/src/maint/mysql-5.0-maint sql/sql_acl.cc: Auto merged
-rw-r--r--mysql-test/r/view_grant.result4
-rw-r--r--sql/sql_acl.cc13
2 files changed, 9 insertions, 8 deletions
diff --git a/mysql-test/r/view_grant.result b/mysql-test/r/view_grant.result
index 32dffa305e5..0f9ce47dec6 100644
--- a/mysql-test/r/view_grant.result
+++ b/mysql-test/r/view_grant.result
@@ -601,9 +601,9 @@ Warnings:
Note 1449 There is no 'no-such-user'@'localhost' registered
SHOW CREATE VIEW v;
View Create View
-v CREATE ALGORITHM=UNDEFINED DEFINER=`no-such-user`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select `t1`.`a` AS `a` from `t1`
+v CREATE ALGORITHM=UNDEFINED DEFINER=`no-such-user`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select `test`.`t1`.`a` AS `a` from `t1`
Warnings:
-Note 1449 There is no 'no-such-user'@'localhost' registered
+Warning 1356 View 'test.v' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
SELECT * FROM v;
ERROR HY000: There is no 'no-such-user'@'localhost' registered
DROP VIEW v;
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index ba6d03d6063..cae1f6eb243 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -978,14 +978,15 @@ bool acl_getroot_no_password(Security_context *sctx, char *user, char *host,
*/
for (i=0 ; i < acl_users.elements ; i++)
{
- acl_user= dynamic_element(&acl_users,i,ACL_USER*);
- if ((!acl_user->user && !user[0]) ||
- (acl_user->user && strcmp(user, acl_user->user) == 0))
+ ACL_USER *acl_user_tmp= dynamic_element(&acl_users,i,ACL_USER*);
+ if ((!acl_user_tmp->user && !user[0]) ||
+ (acl_user_tmp->user && strcmp(user, acl_user_tmp->user) == 0))
{
- if (compare_hostname(&acl_user->host, host, ip))
+ if (compare_hostname(&acl_user_tmp->host, host, ip))
{
- res= 0;
- break;
+ acl_user= acl_user_tmp;
+ res= 0;
+ break;
}
}
}