mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-8614 Assertion `status == 0' failed in add_role_user_mapping_action on RENAME USER
don't forget to re-examine the current element when updating a HASH
This commit is contained in:
@ -56,3 +56,9 @@ Host User Role Admin_option
|
||||
localhost root r1 Y
|
||||
drop role r1;
|
||||
drop user u2;
|
||||
create user foo@localhost;
|
||||
grant create user on *.* to foo@localhost;
|
||||
create role look, isp, xxx, ppp;
|
||||
rename user current_user to nnnn@'%';
|
||||
drop role look, isp, xxx, ppp;
|
||||
drop user nnnn@'%';
|
||||
|
@ -54,3 +54,16 @@ select * from mysql.roles_mapping;
|
||||
|
||||
drop role r1;
|
||||
drop user u2;
|
||||
|
||||
#
|
||||
# MDEV-8614 Assertion `status == 0' failed in add_role_user_mapping_action on RENAME USER
|
||||
#
|
||||
create user foo@localhost;
|
||||
grant create user on *.* to foo@localhost;
|
||||
--connect (con1, localhost, foo,,)
|
||||
create role look, isp, xxx, ppp;
|
||||
rename user current_user to nnnn@'%';
|
||||
drop role look, isp, xxx, ppp;
|
||||
connection default;
|
||||
disconnect con1;
|
||||
drop user nnnn@'%';
|
||||
|
@ -8977,7 +8977,6 @@ static int handle_grant_struct(enum enum_acl_lists struct_no, bool drop,
|
||||
So we need to examine the current element once again, but
|
||||
we don't need to restart the search from the beginning.
|
||||
*/
|
||||
if (idx != elements)
|
||||
idx++;
|
||||
break;
|
||||
}
|
||||
@ -9010,6 +9009,7 @@ static int handle_grant_struct(enum enum_acl_lists struct_no, bool drop,
|
||||
|
||||
my_hash_update(roles_mappings_hash, (uchar*) role_grant_pair,
|
||||
(uchar*) old_key, old_key_length);
|
||||
idx++; // see the comment above
|
||||
break;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user