Commit 6f075478 authored by Sergei Golubchik's avatar Sergei Golubchik

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
parent 956e92d9
...@@ -56,3 +56,9 @@ Host User Role Admin_option ...@@ -56,3 +56,9 @@ Host User Role Admin_option
localhost root r1 Y localhost root r1 Y
drop role r1; drop role r1;
drop user u2; 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; ...@@ -54,3 +54,16 @@ select * from mysql.roles_mapping;
drop role r1; drop role r1;
drop user u2; 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,8 +8977,7 @@ static int handle_grant_struct(enum enum_acl_lists struct_no, bool drop, ...@@ -8977,8 +8977,7 @@ static int handle_grant_struct(enum enum_acl_lists struct_no, bool drop,
So we need to examine the current element once again, but So we need to examine the current element once again, but
we don't need to restart the search from the beginning. we don't need to restart the search from the beginning.
*/ */
if (idx != elements) idx++;
idx++;
break; break;
} }
...@@ -9010,6 +9009,7 @@ static int handle_grant_struct(enum enum_acl_lists struct_no, bool drop, ...@@ -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, my_hash_update(roles_mappings_hash, (uchar*) role_grant_pair,
(uchar*) old_key, old_key_length); (uchar*) old_key, old_key_length);
idx++; // see the comment above
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment