1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Fix for bug #13546 "Build errors with --with-embedded-server

--with-embedded-privilege-control options". One more (hopefully last) build
failure which was introduced during work on WL#2787 "Add view definer/owner
to the view definition..."


libmysqld/lib_sql.cc:
  create_embedded_thd()/check_embedded_connection():
    Several security related THD members (user, host, ip, priv_user, ...) have
    moved to the Security_context class. New THD::security_ctx member points to
    active security context.
sql/sql_acl.cc:
  acl_getroot():
    Updated function description to refelect the fact that THD::user/host/ip/...
    members were moved to separate Security_context class.
sql/sql_parse.cc:
  check_user():
    Updated function description to refelect the fact that THD::user/host/ip/...
    members were moved to separate Security_context class.
This commit is contained in:
unknown
2005-09-28 18:43:46 +04:00
parent 599225749c
commit e3d7877f4b
3 changed files with 14 additions and 13 deletions

View File

@ -514,8 +514,8 @@ void *create_embedded_thd(int client_flag, char *db)
thd->db= db;
thd->db_length= db ? strip_sp(db) : 0;
#ifndef NO_EMBEDDED_ACCESS_CHECKS
thd->db_access= DB_ACLS;
thd->master_access= ~NO_ACCESS;
thd->security_ctx->db_access= DB_ACLS;
thd->security_ctx->master_access= ~NO_ACCESS;
#endif
thd->net.query_cache_query= 0;
@ -542,26 +542,27 @@ int check_embedded_connection(MYSQL *mysql)
int check_embedded_connection(MYSQL *mysql)
{
THD *thd= (THD*)mysql->thd;
Security_context *sctx= thd->security_ctx;
int result;
char scramble_buff[SCRAMBLE_LENGTH];
int passwd_len;
if (mysql->options.client_ip)
{
thd->host= my_strdup(mysql->options.client_ip, MYF(0));
thd->ip= my_strdup(thd->host, MYF(0));
sctx->host= my_strdup(mysql->options.client_ip, MYF(0));
sctx->ip= my_strdup(sctx->host, MYF(0));
}
else
thd->host= (char*)my_localhost;
thd->host_or_ip= thd->host;
sctx->host= (char*)my_localhost;
sctx->host_or_ip= sctx->host;
if (acl_check_host(thd->host,thd->ip))
if (acl_check_host(sctx->host, sctx->ip))
{
result= ER_HOST_NOT_PRIVILEGED;
goto err;
}
thd->user= my_strdup(mysql->user, MYF(0));
sctx->user= my_strdup(mysql->user, MYF(0));
if (mysql->passwd && mysql->passwd[0])
{
memset(thd->scramble, 55, SCRAMBLE_LENGTH); // dummy scramble