diff options
Diffstat (limited to 'source3/auth/auth_ntlmssp.c')
-rw-r--r-- | source3/auth/auth_ntlmssp.c | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/source3/auth/auth_ntlmssp.c b/source3/auth/auth_ntlmssp.c index ae29c30570..99f4564cdf 100644 --- a/source3/auth/auth_ntlmssp.c +++ b/source3/auth/auth_ntlmssp.c @@ -31,23 +31,16 @@ NTSTATUS auth_ntlmssp_steal_session_info(TALLOC_CTX *mem_ctx, struct auth_ntlmssp_state *auth_ntlmssp_state, struct auth_serversupplied_info **session_info) { - /* Free the current server_info user_session_key and reset it from the - * current ntlmssp_state session_key */ - data_blob_free(&auth_ntlmssp_state->server_info->user_session_key); - /* Set up the final session key for the connection */ - auth_ntlmssp_state->server_info->user_session_key = - data_blob_talloc( - auth_ntlmssp_state->server_info, - auth_ntlmssp_state->ntlmssp_state->session_key.data, - auth_ntlmssp_state->ntlmssp_state->session_key.length); - if (auth_ntlmssp_state->ntlmssp_state->session_key.length && - !auth_ntlmssp_state->server_info->user_session_key.data) { - *session_info = NULL; - return NT_STATUS_NO_MEMORY; + NTSTATUS nt_status = create_local_token(mem_ctx, + auth_ntlmssp_state->server_info, + &auth_ntlmssp_state->ntlmssp_state->session_key, + session_info); + + if (!NT_STATUS_IS_OK(nt_status)) { + DEBUG(10, ("create_local_token failed: %s\n", + nt_errstr(nt_status))); } - /* Steal session_info away from auth_ntlmssp_state */ - *session_info = talloc_move(mem_ctx, &auth_ntlmssp_state->server_info); - return NT_STATUS_OK; + return nt_status; } /** @@ -156,14 +149,6 @@ static NTSTATUS auth_ntlmssp_check_password(struct ntlmssp_state *ntlmssp_state, auth_ntlmssp_state->server_info->nss_token |= username_was_mapped; - nt_status = create_local_token(auth_ntlmssp_state->server_info); - - if (!NT_STATUS_IS_OK(nt_status)) { - DEBUG(10, ("create_local_token failed: %s\n", - nt_errstr(nt_status))); - return nt_status; - } - /* Clear out the session keys, and pass them to the caller. * They will not be used in this form again - instead the * NTLMSSP code will decide on the final correct session key, |