summaryrefslogtreecommitdiff
path: root/sql/sql_acl.cc
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2022-11-02 10:42:34 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2022-11-02 13:08:01 +0100
commitad937cf33a44892b2db43a6f18a5c80c78bcf163 (patch)
tree11123aea6ca1b143f0c40d1a1f785b0b3bab8a2d /sql/sql_acl.cc
parent093ec49b6b6948ee8d5a560cd2f862e38844c223 (diff)
parent49a22c5897823c528d52886f6048d5b4c91e221f (diff)
downloadmariadb-git-ad937cf33a44892b2db43a6f18a5c80c78bcf163.tar.gz
Merge branch '10.10' into 10.11
Diffstat (limited to 'sql/sql_acl.cc')
-rw-r--r--sql/sql_acl.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index f6f7fb387a8..464582df749 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -4189,7 +4189,7 @@ bool change_password(THD *thd, LEX_USER *user)
if (update_user_table_password(thd, tables.user_table(), *acl_user))
goto end;
- acl_cache->clear(1); // Clear locked hostname cache
+ hostname_cache_refresh(); // Clear locked hostname cache
mysql_mutex_unlock(&acl_cache->lock);
result= acl_cache_is_locked= 0;
if (mysql_bin_log.is_open())
@@ -4346,7 +4346,6 @@ int acl_set_default_role(THD *thd, const char *host, const char *user,
goto end;
}
- acl_cache->clear(1);
mysql_mutex_unlock(&acl_cache->lock);
result= 0;
if (mysql_bin_log.is_open())
@@ -7836,7 +7835,10 @@ bool mysql_grant_role(THD *thd, List <LEX_USER> &list, bool revoke)
a role
*/
if (role_as_user)
+ {
propagate_role_grants(role_as_user, PRIVS_TO_MERGE::ALL);
+ acl_cache->clear(1);
+ }
}
mysql_mutex_unlock(&acl_cache->lock);
@@ -14268,11 +14270,11 @@ static bool acl_check_ssl(THD *thd, const ACL_USER *acl_user)
if (global_system_variables.log_warnings)
sql_print_information("X509 issuer mismatch: should be '%s' "
"but is '%s'", acl_user->x509_issuer, ptr);
- free(ptr);
+ OPENSSL_free(ptr);
X509_free(cert);
return 1;
}
- free(ptr);
+ OPENSSL_free(ptr);
}
/* X509 subject is specified, we check it .. */
if (acl_user->x509_subject[0])
@@ -14285,11 +14287,11 @@ static bool acl_check_ssl(THD *thd, const ACL_USER *acl_user)
if (global_system_variables.log_warnings)
sql_print_information("X509 subject mismatch: should be '%s' but is '%s'",
acl_user->x509_subject, ptr);
- free(ptr);
+ OPENSSL_free(ptr);
X509_free(cert);
return 1;
}
- free(ptr);
+ OPENSSL_free(ptr);
}
X509_free(cert);
return 0;