mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Bug#24988 FLUSH PRIVILEGES causes brief unavailability
- A race condition caused brief unavailablility when trying to acccess a table. - The variable 'grant_option' was removed to resolve the race condition and to simplify the design pattern. This flag was originally intended to optimize grant checks. sql/mysql_priv.h: - removed 'grant_option' flag. sql/sql_acl.cc: - removed 'grant_option' flag. sql/sql_db.cc: - removed 'grant_option' flag. sql/sql_insert.cc: - removed 'grant_option' flag. sql/sql_parse.cc: - removed 'grant_option' flag. - removed unnecessary variables found_access, found sql/sql_show.cc: - removed 'grant_option' flag. sql/sql_update.cc: - removed 'grant_option' flag. sql/sql_view.cc: - removed 'grant_option' flag.
This commit is contained in:
@ -322,11 +322,11 @@ bool mysql_create_view(THD *thd, TABLE_LIST *views,
|
||||
*/
|
||||
if ((check_access(thd, CREATE_VIEW_ACL, view->db, &view->grant.privilege,
|
||||
0, 0, is_schema_db(view->db)) ||
|
||||
grant_option && check_grant(thd, CREATE_VIEW_ACL, view, 0, 1, 0)) ||
|
||||
check_grant(thd, CREATE_VIEW_ACL, view, 0, 1, 0)) ||
|
||||
(mode != VIEW_CREATE_NEW &&
|
||||
(check_access(thd, DROP_ACL, view->db, &view->grant.privilege,
|
||||
0, 0, is_schema_db(view->db)) ||
|
||||
grant_option && check_grant(thd, DROP_ACL, view, 0, 1, 0))))
|
||||
check_grant(thd, DROP_ACL, view, 0, 1, 0))))
|
||||
{
|
||||
res= TRUE;
|
||||
goto err;
|
||||
@ -379,7 +379,7 @@ bool mysql_create_view(THD *thd, TABLE_LIST *views,
|
||||
{
|
||||
if (check_access(thd, SELECT_ACL, tbl->db,
|
||||
&tbl->grant.privilege, 0, 0, test(tbl->schema_table)) ||
|
||||
grant_option && check_grant(thd, SELECT_ACL, tbl, 0, 1, 0))
|
||||
check_grant(thd, SELECT_ACL, tbl, 0, 1, 0))
|
||||
{
|
||||
res= TRUE;
|
||||
goto err;
|
||||
|
Reference in New Issue
Block a user