summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/rpc_server/lsa/dcesrv_lsa.c34
1 files changed, 5 insertions, 29 deletions
diff --git a/source4/rpc_server/lsa/dcesrv_lsa.c b/source4/rpc_server/lsa/dcesrv_lsa.c
index 606555ba50..9cb79c7e14 100644
--- a/source4/rpc_server/lsa/dcesrv_lsa.c
+++ b/source4/rpc_server/lsa/dcesrv_lsa.c
@@ -1501,11 +1501,6 @@ static NTSTATUS lsa_GetUserName(struct dcesrv_call_state *dce_call, TALLOC_CTX *
struct lsa_GetUserName *r)
{
NTSTATUS status = NT_STATUS_OK;
- struct lsa_policy_state *state;
- uint32_t atype;
- struct dom_sid *account_sid;
- struct dom_sid *authority_sid;
- const char *account_sid_str;
const char *account_name;
const char *authority_name;
struct lsa_String *_account_name;
@@ -1527,39 +1522,20 @@ static NTSTATUS lsa_GetUserName(struct dcesrv_call_state *dce_call, TALLOC_CTX *
/* TODO: this check should go and we should rely on the calling code that this is valid */
if (!dce_call->conn->auth_state.session_info ||
- !dce_call->conn->auth_state.session_info->security_token ||
- !dce_call->conn->auth_state.session_info->security_token->user_sid) {
+ !dce_call->conn->auth_state.session_info->server_info ||
+ !dce_call->conn->auth_state.session_info->server_info->account_name ||
+ !dce_call->conn->auth_state.session_info->server_info->domain) {
return NT_STATUS_INTERNAL_ERROR;
}
- account_sid = dce_call->conn->auth_state.session_info->security_token->user_sid;
-
- account_sid_str = dom_sid_string(mem_ctx, account_sid);
- NTSTATUS_TALLOC_CHECK(account_sid_str);
-
- status = lsa_get_policy_state(dce_call, mem_ctx, &state);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- status = lsa_lookup_sid(state, mem_ctx,
- account_sid, account_sid_str,
- &account_name, &atype);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
+ account_name = talloc_reference(mem_ctx, dce_call->conn->auth_state.session_info->server_info->account_name);
+ authority_name = talloc_reference(mem_ctx, dce_call->conn->auth_state.session_info->server_info->domain);
_account_name = talloc_p(mem_ctx, struct lsa_String);
NTSTATUS_TALLOC_CHECK(_account_name);
_account_name->string = account_name;
if (r->in.authority_name) {
- status = lsa_authority_name(state, mem_ctx, account_sid,
- &authority_name, &authority_sid);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
_authority_name = talloc_p(mem_ctx, struct lsa_StringPointer);
NTSTATUS_TALLOC_CHECK(_authority_name);
_authority_name->string = talloc_p(mem_ctx, struct lsa_String);