summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <thek@adventure.(none)>2007-05-29 10:17:30 +0200
committerunknown <thek@adventure.(none)>2007-05-29 10:17:30 +0200
commit2212ad470e41cc0a392931fdd260d8833c0c5554 (patch)
treeb60fcdd7cbc3bd9ddedb690cffbcedcee65ed473
parent5ed76763f864f8d0a5a6295e1ba492cd2f1acbf9 (diff)
parent96d16d96d12560b54da550d79ff0017d2976aacc (diff)
downloadmariadb-git-2212ad470e41cc0a392931fdd260d8833c0c5554.tar.gz
Merge adventure.(none):/home/thek/Development/cpp/bug24988/my50-bug24988
into adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime sql/mysqld.cc: Auto merged
-rw-r--r--sql/mysqld.cc10
-rw-r--r--sql/sql_acl.cc11
2 files changed, 13 insertions, 8 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 051bad5b310..761cb4b50e2 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -346,7 +346,15 @@ bool opt_endinfo, using_udf_functions;
my_bool locked_in_memory;
bool opt_using_transactions, using_update_log;
bool volatile abort_loop;
-bool volatile shutdown_in_progress, grant_option;
+bool volatile shutdown_in_progress;
+/**
+ @brief 'grant_option' is used to indicate if privileges needs
+ to be checked, in which case the lock, LOCK_grant, is used
+ to protect access to the grant table.
+ @note This flag is dropped in 5.1
+ @see grant_init()
+ */
+bool volatile grant_option;
my_bool opt_skip_slave_start = 0; // If set, slave is not autostarted
my_bool opt_reckless_slave = 0;
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index ebf9385d177..ba6d03d6063 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -2995,7 +2995,7 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list,
}
}
}
- grant_option=TRUE;
+
thd->mem_root= old_root;
pthread_mutex_unlock(&acl_cache->lock);
@@ -3162,7 +3162,7 @@ bool mysql_routine_grant(THD *thd, TABLE_LIST *table_list, bool is_proc,
continue;
}
}
- grant_option=TRUE;
+
thd->mem_root= old_root;
pthread_mutex_unlock(&acl_cache->lock);
if (!result && !no_error)
@@ -3338,6 +3338,8 @@ my_bool grant_init()
delete thd;
/* Remember that we don't have a THD */
my_pthread_setspecific_ptr(THR_THD, 0);
+ /* Set the grant option flag so we will check grants */
+ grant_option= TRUE;
DBUG_RETURN(return_val);
}
@@ -3367,7 +3369,6 @@ static my_bool grant_load(TABLE_LIST *tables)
THR_MALLOC);
DBUG_ENTER("grant_load");
- grant_option = FALSE;
(void) hash_init(&column_priv_hash,system_charset_info,
0,0,0, (hash_get_key) get_grant_table,
(hash_free_key) free_grant_table,0);
@@ -3478,7 +3479,6 @@ static my_bool grant_load(TABLE_LIST *tables)
}
while (!p_table->file->index_next(p_table->record[0]));
}
- grant_option= TRUE;
return_val=0; // Return ok
end_unlock:
@@ -3511,7 +3511,6 @@ my_bool grant_reload(THD *thd)
{
TABLE_LIST tables[3];
HASH old_column_priv_hash, old_proc_priv_hash, old_func_priv_hash;
- bool old_grant_option;
MEM_ROOT old_mem;
my_bool return_val= 1;
DBUG_ENTER("grant_reload");
@@ -3541,7 +3540,6 @@ my_bool grant_reload(THD *thd)
old_column_priv_hash= column_priv_hash;
old_proc_priv_hash= proc_priv_hash;
old_func_priv_hash= func_priv_hash;
- old_grant_option= grant_option;
old_mem= memex;
if ((return_val= grant_load(tables)))
@@ -3551,7 +3549,6 @@ my_bool grant_reload(THD *thd)
column_priv_hash= old_column_priv_hash; /* purecov: deadcode */
proc_priv_hash= old_proc_priv_hash;
func_priv_hash= old_func_priv_hash;
- grant_option= old_grant_option; /* purecov: deadcode */
memex= old_mem; /* purecov: deadcode */
}
else