mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge branch '10.4' into 10.5
This commit is contained in:
@ -944,6 +944,7 @@ class User_table_tabular: public User_table
|
||||
|
||||
int get_auth(THD *thd, MEM_ROOT *root, ACL_USER *u) const
|
||||
{
|
||||
mysql_mutex_assert_owner(&acl_cache->lock);
|
||||
u->alloc_auth(root, 1);
|
||||
if (have_password())
|
||||
{
|
||||
@ -2272,6 +2273,9 @@ static bool validate_password(THD *thd, const LEX_CSTRING &user,
|
||||
static int set_user_salt(ACL_USER::AUTH *auth, plugin_ref plugin)
|
||||
{
|
||||
st_mysql_auth *info= (st_mysql_auth *) plugin_decl(plugin)->info;
|
||||
|
||||
mysql_mutex_assert_owner(&acl_cache->lock);
|
||||
|
||||
if (info->interface_version >= 0x0202 && info->preprocess_hash &&
|
||||
auth->auth_string.length)
|
||||
{
|
||||
@ -2306,6 +2310,8 @@ static int set_user_auth(THD *thd, const LEX_CSTRING &user,
|
||||
plugin_ref plugin= get_auth_plugin(thd, auth->plugin, &unlock_plugin);
|
||||
int res= 1;
|
||||
|
||||
mysql_mutex_assert_owner(&acl_cache->lock);
|
||||
|
||||
if (!plugin)
|
||||
{
|
||||
push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN,
|
||||
@ -2382,10 +2388,13 @@ static bool set_user_salt_if_needed(ACL_USER *user_copy, int curr_auth,
|
||||
if (auth_copy->salt.str)
|
||||
return 0; // already done
|
||||
|
||||
if (set_user_salt(auth_copy, plugin))
|
||||
return 1;
|
||||
|
||||
mysql_mutex_lock(&acl_cache->lock);
|
||||
if (set_user_salt(auth_copy, plugin))
|
||||
{
|
||||
mysql_mutex_unlock(&acl_cache->lock);
|
||||
return 1;
|
||||
}
|
||||
|
||||
ACL_USER *user= find_user_exact(user_copy->host.hostname, user_copy->user.str);
|
||||
// make sure the user wasn't altered or dropped meanwhile
|
||||
if (user)
|
||||
@ -3420,6 +3429,7 @@ ACL_USER::ACL_USER(THD *thd, const LEX_USER &combo,
|
||||
const Account_options &options,
|
||||
const privilege_t privileges)
|
||||
{
|
||||
mysql_mutex_assert_owner(&acl_cache->lock);
|
||||
user= safe_lexcstrdup_root(&acl_memroot, combo.user);
|
||||
update_hostname(&host, safe_strdup_root(&acl_memroot, combo.host.str));
|
||||
hostname_length= combo.host.length;
|
||||
@ -3436,6 +3446,8 @@ static int acl_user_update(THD *thd, ACL_USER *acl_user, uint nauth,
|
||||
const privilege_t privileges)
|
||||
{
|
||||
ACL_USER_PARAM::AUTH *work_copy= NULL;
|
||||
mysql_mutex_assert_owner(&acl_cache->lock);
|
||||
|
||||
if (nauth)
|
||||
{
|
||||
if (!(work_copy= (ACL_USER_PARAM::AUTH*)
|
||||
@ -5116,6 +5128,7 @@ update_role_mapping(LEX_CSTRING *user, LEX_CSTRING *host, LEX_CSTRING *role,
|
||||
return 0;
|
||||
}
|
||||
|
||||
mysql_mutex_assert_owner(&acl_cache->lock);
|
||||
/* allocate a new entry that will go in the hash */
|
||||
ROLE_GRANT_PAIR *hash_entry= new (&acl_memroot) ROLE_GRANT_PAIR;
|
||||
if (hash_entry->init(&acl_memroot, user->str, host->str,
|
||||
@ -5180,6 +5193,7 @@ replace_proxies_priv_table(THD *thd, TABLE *table, const LEX_USER *user,
|
||||
|
||||
DBUG_ENTER("replace_proxies_priv_table");
|
||||
|
||||
mysql_mutex_assert_owner(&acl_cache->lock);
|
||||
if (!table)
|
||||
{
|
||||
my_error(ER_NO_SUCH_TABLE, MYF(0), MYSQL_SCHEMA_NAME.str,
|
||||
|
Reference in New Issue
Block a user