1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-26 21:57:41 +03:00

s4:rpc_server/winreq: make use dcesrv_call_session_info()

BUG: https://bugzilla.samba.org/show_bug.cgi?id=7113
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11892

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Stefan Metzmacher 2018-11-03 01:19:51 +01:00 committed by Jeremy Allison
parent ba127cab2c
commit 014e55b8e9

View File

@ -32,12 +32,14 @@ enum handle_types { HTYPE_REGVAL, HTYPE_REGKEY };
static NTSTATUS dcerpc_winreg_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
struct auth_session_info *session_info =
dcesrv_call_session_info(dce_call);
struct registry_context *ctx;
WERROR err;
err = reg_open_samba(dce_call->context,
&ctx, dce_call->event_ctx, dce_call->conn->dce_ctx->lp_ctx,
dce_call->conn->auth_state.session_info,
session_info,
NULL);
if (!W_ERROR_IS_OK(err)) {
@ -113,6 +115,8 @@ static WERROR dcesrv_winreg_CreateKey(struct dcesrv_call_state *dce_call,
TALLOC_CTX *mem_ctx,
struct winreg_CreateKey *r)
{
struct auth_session_info *session_info =
dcesrv_call_session_info(dce_call);
struct dcesrv_handle *h, *newh;
struct security_descriptor sd;
struct registry_key *key;
@ -123,7 +127,7 @@ static WERROR dcesrv_winreg_CreateKey(struct dcesrv_call_state *dce_call,
newh = dcesrv_handle_new(dce_call->context, HTYPE_REGKEY);
switch (security_session_user_level(dce_call->conn->auth_state.session_info, NULL))
switch (security_session_user_level(session_info, NULL))
{
case SECURITY_SYSTEM:
case SECURITY_ADMINISTRATOR:
@ -179,6 +183,8 @@ static WERROR dcesrv_winreg_DeleteKey(struct dcesrv_call_state *dce_call,
TALLOC_CTX *mem_ctx,
struct winreg_DeleteKey *r)
{
struct auth_session_info *session_info =
dcesrv_call_session_info(dce_call);
struct dcesrv_handle *h;
struct registry_key *key;
WERROR result;
@ -186,7 +192,7 @@ static WERROR dcesrv_winreg_DeleteKey(struct dcesrv_call_state *dce_call,
DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
key = h->data;
switch (security_session_user_level(dce_call->conn->auth_state.session_info, NULL))
switch (security_session_user_level(session_info, NULL))
{
case SECURITY_SYSTEM:
case SECURITY_ADMINISTRATOR:
@ -207,13 +213,15 @@ static WERROR dcesrv_winreg_DeleteValue(struct dcesrv_call_state *dce_call,
TALLOC_CTX *mem_ctx,
struct winreg_DeleteValue *r)
{
struct auth_session_info *session_info =
dcesrv_call_session_info(dce_call);
struct dcesrv_handle *h;
struct registry_key *key;
DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
key = h->data;
switch (security_session_user_level(dce_call->conn->auth_state.session_info, NULL))
switch (security_session_user_level(session_info, NULL))
{
case SECURITY_SYSTEM:
case SECURITY_ADMINISTRATOR:
@ -345,13 +353,15 @@ static WERROR dcesrv_winreg_FlushKey(struct dcesrv_call_state *dce_call,
TALLOC_CTX *mem_ctx,
struct winreg_FlushKey *r)
{
struct auth_session_info *session_info =
dcesrv_call_session_info(dce_call);
struct dcesrv_handle *h;
struct registry_key *key;
DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
key = h->data;
switch (security_session_user_level(dce_call->conn->auth_state.session_info, NULL))
switch (security_session_user_level(session_info, NULL))
{
case SECURITY_SYSTEM:
case SECURITY_ADMINISTRATOR:
@ -406,6 +416,8 @@ static WERROR dcesrv_winreg_OpenKey(struct dcesrv_call_state *dce_call,
TALLOC_CTX *mem_ctx,
struct winreg_OpenKey *r)
{
struct auth_session_info *session_info =
dcesrv_call_session_info(dce_call);
struct dcesrv_handle *h, *newh;
struct registry_key *key;
WERROR result;
@ -413,7 +425,7 @@ static WERROR dcesrv_winreg_OpenKey(struct dcesrv_call_state *dce_call,
DCESRV_PULL_HANDLE_FAULT(h, r->in.parent_handle, HTYPE_REGKEY);
key = h->data;
switch (security_session_user_level(dce_call->conn->auth_state.session_info, NULL))
switch (security_session_user_level(session_info, NULL))
{
case SECURITY_SYSTEM:
case SECURITY_ADMINISTRATOR:
@ -446,6 +458,8 @@ static WERROR dcesrv_winreg_QueryInfoKey(struct dcesrv_call_state *dce_call,
TALLOC_CTX *mem_ctx,
struct winreg_QueryInfoKey *r)
{
struct auth_session_info *session_info =
dcesrv_call_session_info(dce_call);
struct dcesrv_handle *h;
struct registry_key *key;
const char *classname = NULL;
@ -454,7 +468,7 @@ static WERROR dcesrv_winreg_QueryInfoKey(struct dcesrv_call_state *dce_call,
DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
key = h->data;
switch (security_session_user_level(dce_call->conn->auth_state.session_info, NULL))
switch (security_session_user_level(session_info, NULL))
{
case SECURITY_SYSTEM:
case SECURITY_ADMINISTRATOR:
@ -496,6 +510,8 @@ static WERROR dcesrv_winreg_QueryValue(struct dcesrv_call_state *dce_call,
TALLOC_CTX *mem_ctx,
struct winreg_QueryValue *r)
{
struct auth_session_info *session_info =
dcesrv_call_session_info(dce_call);
struct dcesrv_handle *h;
struct registry_key *key;
uint32_t value_type;
@ -505,7 +521,7 @@ static WERROR dcesrv_winreg_QueryValue(struct dcesrv_call_state *dce_call,
DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
key = h->data;
switch (security_session_user_level(dce_call->conn->auth_state.session_info, NULL))
switch (security_session_user_level(session_info, NULL))
{
case SECURITY_SYSTEM:
case SECURITY_ADMINISTRATOR:
@ -605,6 +621,8 @@ static WERROR dcesrv_winreg_SetValue(struct dcesrv_call_state *dce_call,
TALLOC_CTX *mem_ctx,
struct winreg_SetValue *r)
{
struct auth_session_info *session_info =
dcesrv_call_session_info(dce_call);
struct dcesrv_handle *h;
struct registry_key *key;
DATA_BLOB data;
@ -613,7 +631,7 @@ static WERROR dcesrv_winreg_SetValue(struct dcesrv_call_state *dce_call,
DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
key = h->data;
switch (security_session_user_level(dce_call->conn->auth_state.session_info, NULL))
switch (security_session_user_level(session_info, NULL))
{
case SECURITY_SYSTEM:
case SECURITY_ADMINISTRATOR: