diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2022-11-02 10:42:34 +0100 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2022-11-02 13:08:01 +0100 |
commit | ad937cf33a44892b2db43a6f18a5c80c78bcf163 (patch) | |
tree | 11123aea6ca1b143f0c40d1a1f785b0b3bab8a2d /sql/sql_acl.cc | |
parent | 093ec49b6b6948ee8d5a560cd2f862e38844c223 (diff) | |
parent | 49a22c5897823c528d52886f6048d5b4c91e221f (diff) | |
download | mariadb-git-ad937cf33a44892b2db43a6f18a5c80c78bcf163.tar.gz |
Merge branch '10.10' into 10.11
Diffstat (limited to 'sql/sql_acl.cc')
-rw-r--r-- | sql/sql_acl.cc | 14 |
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; |