mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-5238 Server crashes in find_role_grant_pair on SHOW GRANTS for an anonymous user
This commit is contained in:
12
mysql-test/suite/roles/show_grants_anon-5238.result
Normal file
12
mysql-test/suite/roles/show_grants_anon-5238.result
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
create user ''@localhost;
|
||||||
|
create role r1;
|
||||||
|
grant r1 to ''@localhost;
|
||||||
|
select current_user;
|
||||||
|
current_user
|
||||||
|
@localhost
|
||||||
|
show grants;
|
||||||
|
Grants for @localhost
|
||||||
|
GRANT r1 TO ''@'localhost'
|
||||||
|
GRANT USAGE ON *.* TO ''@'localhost'
|
||||||
|
drop role r1;
|
||||||
|
drop user ''@localhost;
|
17
mysql-test/suite/roles/show_grants_anon-5238.test
Normal file
17
mysql-test/suite/roles/show_grants_anon-5238.test
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#
|
||||||
|
# MDEV-5238 Server crashes in find_role_grant_pair on SHOW GRANTS for an anonymous user
|
||||||
|
#
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
|
create user ''@localhost;
|
||||||
|
create role r1;
|
||||||
|
grant r1 to ''@localhost;
|
||||||
|
|
||||||
|
--connect (con1,localhost,nonexisting_user,,)
|
||||||
|
select current_user;
|
||||||
|
show grants;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
drop role r1;
|
||||||
|
drop user ''@localhost;
|
||||||
|
|
@ -7556,7 +7556,7 @@ static ROLE_GRANT_PAIR *find_role_grant_pair(const LEX_STRING *u,
|
|||||||
pair_key.alloc(key_length);
|
pair_key.alloc(key_length);
|
||||||
|
|
||||||
strmov(strmov(strmov(const_cast<char*>(pair_key.ptr()),
|
strmov(strmov(strmov(const_cast<char*>(pair_key.ptr()),
|
||||||
u->str) + 1, h->str) + 1, r->str);
|
safe_str(u->str)) + 1, h->str) + 1, r->str);
|
||||||
|
|
||||||
return (ROLE_GRANT_PAIR *)
|
return (ROLE_GRANT_PAIR *)
|
||||||
my_hash_search(&acl_roles_mappings, (uchar*)pair_key.ptr(), key_length);
|
my_hash_search(&acl_roles_mappings, (uchar*)pair_key.ptr(), key_length);
|
||||||
|
Reference in New Issue
Block a user