Bug#26285 selecting information_schema crahes server
The crash happens when 'skip-grant-tables' is enabled. We skip the filling of I_S privilege tables if acl_cache is not initialized. mysql-test/r/skip_grants.result: test result mysql-test/t/skip_grants.test: test case sql/sql_acl.cc: skip filling of I_S privilege tables if acl_cache is not initialized
This commit is contained in:
parent
c6ab94bdf1
commit
a51b768600
@ -58,3 +58,15 @@ DROP PROCEDURE p3;
|
||||
DROP FUNCTION f1;
|
||||
DROP FUNCTION f2;
|
||||
DROP FUNCTION f3;
|
||||
select count(*) from information_schema.COLUMN_PRIVILEGES;
|
||||
count(*)
|
||||
0
|
||||
select count(*) from information_schema.SCHEMA_PRIVILEGES;
|
||||
count(*)
|
||||
0
|
||||
select count(*) from information_schema.TABLE_PRIVILEGES;
|
||||
count(*)
|
||||
0
|
||||
select count(*) from information_schema.USER_PRIVILEGES;
|
||||
count(*)
|
||||
0
|
||||
|
@ -108,3 +108,11 @@ DROP PROCEDURE p3;
|
||||
DROP FUNCTION f1;
|
||||
DROP FUNCTION f2;
|
||||
DROP FUNCTION f3;
|
||||
|
||||
#
|
||||
# Bug#26285 Selecting information_schema crahes server
|
||||
#
|
||||
select count(*) from information_schema.COLUMN_PRIVILEGES;
|
||||
select count(*) from information_schema.SCHEMA_PRIVILEGES;
|
||||
select count(*) from information_schema.TABLE_PRIVILEGES;
|
||||
select count(*) from information_schema.USER_PRIVILEGES;
|
||||
|
@ -5882,6 +5882,8 @@ int fill_schema_user_privileges(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
char *curr_host= thd->security_ctx->priv_host_name();
|
||||
DBUG_ENTER("fill_schema_user_privileges");
|
||||
|
||||
if (!initialized)
|
||||
DBUG_RETURN(0);
|
||||
pthread_mutex_lock(&acl_cache->lock);
|
||||
|
||||
for (counter=0 ; counter < acl_users.elements ; counter++)
|
||||
@ -5941,6 +5943,8 @@ int fill_schema_schema_privileges(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
char *curr_host= thd->security_ctx->priv_host_name();
|
||||
DBUG_ENTER("fill_schema_schema_privileges");
|
||||
|
||||
if (!initialized)
|
||||
DBUG_RETURN(0);
|
||||
pthread_mutex_lock(&acl_cache->lock);
|
||||
|
||||
for (counter=0 ; counter < acl_dbs.elements ; counter++)
|
||||
|
Loading…
x
Reference in New Issue
Block a user