summaryrefslogtreecommitdiff
path: root/source3/libsmb
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2012-04-16 12:14:07 +0200
committerStefan Metzmacher <metze@samba.org>2012-04-16 12:54:54 +0200
commit66d7553b0e008601846c1fc7b3a82052cbb5d66d (patch)
treeae33c0b9a8087d883a7ec9f76ac0e624cedc3532 /source3/libsmb
parent92483eee254ef6844fe88abe1e64f67033a1ea2d (diff)
downloadsamba-66d7553b0e008601846c1fc7b3a82052cbb5d66d.tar.gz
samba-66d7553b0e008601846c1fc7b3a82052cbb5d66d.tar.bz2
samba-66d7553b0e008601846c1fc7b3a82052cbb5d66d.zip
s3:libsmb: fix anonymous session setups against windows servers
Windows server doesn't set the SMB2_SESSION_FLAG_IS_GUEST nor SMB2_SESSION_FLAG_IS_NULL flag. This fix makes sure we don't try to verify a signature on the final session setup response. metze
Diffstat (limited to 'source3/libsmb')
-rw-r--r--source3/libsmb/cliconnect.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index 9d4e4e1f99..6e057a5fef 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -1710,6 +1710,22 @@ static void cli_session_setup_ntlmssp_done(struct tevent_req *subreq)
if (cli_state_protocol(state->cli) >= PROTOCOL_SMB2_02) {
struct smbXcli_session *session = state->cli->smb2.session;
+
+ if (state->ntlmssp_state->nt_hash == NULL) {
+ /*
+ * Windows server does not set the
+ * SMB2_SESSION_FLAG_IS_GUEST nor
+ * SMB2_SESSION_FLAG_IS_NULL flag.
+ *
+ * This fix makes sure we do not try
+ * to verify a signature on the final
+ * session setup response.
+ */
+ TALLOC_FREE(state->ntlmssp_state);
+ tevent_req_done(req);
+ return;
+ }
+
status = smb2cli_session_set_session_key(session,
state->ntlmssp_state->session_key,
recv_iov);