Fix for bug #28895 "Test 'information_schema_db' fails on i5/OS 32 bit".
In acl_getroot_no_password(), use a separate variable for traversing the acl_users list so that the last entry is not used when no matching entries are found.
This commit is contained in:
parent
9346e9246a
commit
35dd1fc535
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user