diff options
-rw-r--r-- | source3/smbd/sesssetup.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c index e36760c148..25f9d424ab 100644 --- a/source3/smbd/sesssetup.c +++ b/source3/smbd/sesssetup.c @@ -77,9 +77,6 @@ static BOOL reply_sesssetup_blob(connection_struct *conn, char *outbuf, set_message(outbuf,4,0,True); - /* we set NT_STATUS_MORE_PROCESSING_REQUIRED to tell the other end - that we aren't finished yet */ - nt_status = nt_status_squash(nt_status); SIVAL(outbuf, smb_rcls, NT_STATUS_V(nt_status)); SSVAL(outbuf, smb_vwv0, 0xFF); /* no chaining possible */ @@ -309,6 +306,9 @@ static BOOL reply_spnego_ntlmssp(connection_struct *conn, char *outbuf, ret = reply_sesssetup_blob(conn, outbuf, response, nt_status); data_blob_free(&response); + /* NT_STATUS_MORE_PROCESSING_REQUIRED from our NTLMSSP code tells us, + and the other end, that we are not finished yet. */ + if (!ret || !NT_STATUS_EQUAL(nt_status, NT_STATUS_MORE_PROCESSING_REQUIRED)) { auth_ntlmssp_end(auth_ntlmssp_state); } |