diff options
author | unknown <dlenev@mysql.com> | 2005-09-28 18:43:46 +0400 |
---|---|---|
committer | unknown <dlenev@mysql.com> | 2005-09-28 18:43:46 +0400 |
commit | e3d7877f4b522c8f735d8fdf8ba626d722b0506c (patch) | |
tree | 5b1f40f3aa6d1627c28c990fe04486324d03d0e2 /libmysqld | |
parent | 599225749c351cad5a6c27fa04c798ab56d1db73 (diff) | |
download | mariadb-git-e3d7877f4b522c8f735d8fdf8ba626d722b0506c.tar.gz |
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.
Diffstat (limited to 'libmysqld')
-rw-r--r-- | libmysqld/lib_sql.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 5e621bf4419..8552b1c2b8a 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -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 |