- if (kerb_mech) {
- DEBUG(3,("smb2: network "
- "misconfiguration, client sent us a "
- "krb5 ticket and kerberos security "
- "not enabled\n"));
- TALLOC_FREE(session);
- data_blob_free(&secblob_in);
- SAFE_FREE(kerb_mech);
- return NT_STATUS_LOGON_FAILURE;
- }
- }
-
- status = auth_ntlmssp_update(session->auth_ntlmssp_state,
- auth,
- &auth_out);
- if (!NT_STATUS_IS_OK(status)) {
- auth_ntlmssp_end(&session->auth_ntlmssp_state);
- data_blob_free(&auth);
- TALLOC_FREE(session);
- return status;
- }
-
- data_blob_free(&auth);
-
- secblob_out = spnego_gen_auth_response(&auth_out,
- status, NULL);
-
- *out_security_buffer = data_blob_talloc(smb2req,
- secblob_out.data,
- secblob_out.length);
- if (secblob_out.data && out_security_buffer->data == NULL) {
- auth_ntlmssp_end(&session->auth_ntlmssp_state);
- TALLOC_FREE(session);
- return NT_STATUS_NO_MEMORY;
- }
-
- *out_session_id = session->vuid;
-
- return smbd_smb2_common_ntlmssp_auth_return(session,
- smb2req,
- in_security_mode,
- in_security_buffer,
- out_session_flags,
- out_session_id);
-}
-
-static NTSTATUS smbd_smb2_raw_ntlmssp_auth(struct smbd_smb2_session *session,
- struct smbd_smb2_request *smb2req,
- uint8_t in_security_mode,
- DATA_BLOB in_security_buffer,
- uint16_t *out_session_flags,
- DATA_BLOB *out_security_buffer,
- uint64_t *out_session_id)
-{
- NTSTATUS status;
- DATA_BLOB secblob_out = data_blob_null;
-
- if (session->auth_ntlmssp_state == NULL) {
- status = auth_ntlmssp_start(&session->auth_ntlmssp_state);