summaryrefslogtreecommitdiff
path: root/source3/smbd/sesssetup.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/sesssetup.c')
-rw-r--r--source3/smbd/sesssetup.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index cd7928de50..aad122cbc5 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -326,15 +326,6 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
register_homes_share(session_info->unix_info->unix_name);
}
- if (!session_claim(session)) {
- DEBUG(1, ("smb1: Failed to claim session for vuid=%llu\n",
- (unsigned long long)session->compat->vuid));
- data_blob_free(&out_blob);
- TALLOC_FREE(session);
- reply_nterror(req, NT_STATUS_LOGON_FAILURE);
- return;
- }
-
if (srv_is_signing_negotiated(sconn) &&
action == 0 &&
session->global->signing_key.length > 0)
@@ -366,6 +357,15 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
GENSEC_EXPIRE_TIME_INFINITY;
}
+ if (!session_claim(session)) {
+ DEBUG(1, ("smb1: Failed to claim session for vuid=%llu\n",
+ (unsigned long long)session->compat->vuid));
+ data_blob_free(&out_blob);
+ TALLOC_FREE(session);
+ reply_nterror(req, NT_STATUS_LOGON_FAILURE);
+ return;
+ }
+
status = smbXsrv_session_update(session);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("smb1: Failed to update session for vuid=%llu - %s\n",
@@ -1008,17 +1008,6 @@ void reply_sesssetup_and_X(struct smb_request *req)
register_homes_share(session_info->unix_info->unix_name);
}
- if (!session_claim(session)) {
- DEBUG(1, ("smb1: Failed to claim session for vuid=%llu\n",
- (unsigned long long)session->compat->vuid));
- data_blob_free(&nt_resp);
- data_blob_free(&lm_resp);
- TALLOC_FREE(session);
- reply_nterror(req, NT_STATUS_LOGON_FAILURE);
- END_PROFILE(SMBsesssetupX);
- return;
- }
-
if (srv_is_signing_negotiated(sconn) &&
action == 0 &&
session->global->signing_key.length > 0)
@@ -1057,6 +1046,17 @@ void reply_sesssetup_and_X(struct smb_request *req)
return;
}
+ if (!session_claim(session)) {
+ DEBUG(1, ("smb1: Failed to claim session for vuid=%llu\n",
+ (unsigned long long)session->compat->vuid));
+ data_blob_free(&nt_resp);
+ data_blob_free(&lm_resp);
+ TALLOC_FREE(session);
+ reply_nterror(req, NT_STATUS_LOGON_FAILURE);
+ END_PROFILE(SMBsesssetupX);
+ return;
+ }
+
/* current_user_info is changed on new vuid */
reload_services(sconn, conn_snum_used, true);