summaryrefslogtreecommitdiff
path: root/sql/sql_acl.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-10-25 11:26:37 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2022-10-25 11:26:37 +0300
commit9a0b9e336081619d88211d17895e3e7f8030ab3f (patch)
treedff672703c5309b1e34227330ea027ab13e6c29a /sql/sql_acl.cc
parent2f7a0072b6f343051fc2dbd77ea46519617b94ab (diff)
parent667d3fbbb51044b20d23150992adbbad1f04aad8 (diff)
downloadmariadb-git-9a0b9e336081619d88211d17895e3e7f8030ab3f.tar.gz
Merge 10.4 into 10.5
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 efed04fd76e..f51e16e4706 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -4096,7 +4096,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())
@@ -4254,7 +4254,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())
@@ -7733,7 +7732,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);
@@ -14132,11 +14134,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])
@@ -14149,11 +14151,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;