1
0
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:
unknown
2007-05-28 14:08:04 +02:00
parent 2c06c07a7a
commit 416122b29c
8 changed files with 71 additions and 121 deletions

View File

@ -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;