diff options
author | Andrew Bartlett <abartlet@samba.org> | 2010-05-25 15:34:06 +1000 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2010-05-31 15:10:33 +0200 |
commit | 3b706865f6bae7a2b04590da160bda939a3bafe5 (patch) | |
tree | 5b4f94158d44524bd2115a5cea4063dd278796ee /source3/smbd/smb2_sesssetup.c | |
parent | a950c6c60097af750d4348cb096fdacb342e9e71 (diff) | |
download | samba-3b706865f6bae7a2b04590da160bda939a3bafe5.tar.gz samba-3b706865f6bae7a2b04590da160bda939a3bafe5.tar.bz2 samba-3b706865f6bae7a2b04590da160bda939a3bafe5.zip |
s3:auth Make AUTH_NTLMSSP_STATE a private structure.
This makes it a little easier for it to writen in terms of GENSEC in future.
Andrew Bartlett
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'source3/smbd/smb2_sesssetup.c')
-rw-r--r-- | source3/smbd/smb2_sesssetup.c | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/source3/smbd/smb2_sesssetup.c b/source3/smbd/smb2_sesssetup.c index d8972156a1..b659f2e2ef 100644 --- a/source3/smbd/smb2_sesssetup.c +++ b/source3/smbd/smb2_sesssetup.c @@ -605,13 +605,19 @@ static NTSTATUS smbd_smb2_common_ntlmssp_auth_return(struct smbd_smb2_session *s uint64_t *out_session_id) { fstring tmp; + session->server_info = auth_ntlmssp_server_info(session, session->auth_ntlmssp_state); + if (!session->server_info) { + auth_ntlmssp_end(&session->auth_ntlmssp_state); + TALLOC_FREE(session); + return NT_STATUS_NO_MEMORY; + } if ((in_security_mode & SMB2_NEGOTIATE_SIGNING_REQUIRED) || lp_server_signing() == Required) { session->do_signing = true; } - if (session->auth_ntlmssp_state->server_info->guest) { + if (session->server_info->guest) { /* we map anonymous to guest internally */ *out_session_flags |= SMB2_SESSION_FLAG_IS_GUEST; *out_session_flags |= SMB2_SESSION_FLAG_IS_NULL; @@ -619,20 +625,6 @@ static NTSTATUS smbd_smb2_common_ntlmssp_auth_return(struct smbd_smb2_session *s session->do_signing = false; } - session->server_info = session->auth_ntlmssp_state->server_info; - data_blob_free(&session->server_info->user_session_key); - session->server_info->user_session_key = - data_blob_talloc( - session->server_info, - session->auth_ntlmssp_state->ntlmssp_state->session_key.data, - session->auth_ntlmssp_state->ntlmssp_state->session_key.length); - if (session->auth_ntlmssp_state->ntlmssp_state->session_key.length > 0) { - if (session->server_info->user_session_key.data == NULL) { - auth_ntlmssp_end(&session->auth_ntlmssp_state); - TALLOC_FREE(session); - return NT_STATUS_NO_MEMORY; - } - } session->session_key = session->server_info->user_session_key; session->compat_vuser = talloc_zero(session, user_struct); @@ -650,11 +642,11 @@ static NTSTATUS smbd_smb2_common_ntlmssp_auth_return(struct smbd_smb2_session *s /* This is a potentially untrusted username */ alpha_strcpy(tmp, - session->auth_ntlmssp_state->ntlmssp_state->user, - ". _-$", - sizeof(tmp)); + auth_ntlmssp_get_username(session->auth_ntlmssp_state), + ". _-$", + sizeof(tmp)); session->server_info->sanitized_username = talloc_strdup( - session->server_info, tmp); + session->server_info, tmp); if (!session->compat_vuser->server_info->guest) { session->compat_vuser->homes_snum = |