diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/auth/ntlmssp/ntlmssp_server.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/source4/auth/ntlmssp/ntlmssp_server.c b/source4/auth/ntlmssp/ntlmssp_server.c index 9f106da37c..9a1e11aff6 100644 --- a/source4/auth/ntlmssp/ntlmssp_server.c +++ b/source4/auth/ntlmssp/ntlmssp_server.c @@ -186,13 +186,23 @@ NTSTATUS ntlmssp_server_negotiate(struct gensec_security *gensec_security, #endif if (in.length) { - if (!msrpc_parse(out_mem_ctx, + BOOL parse_ok = msrpc_parse(out_mem_ctx, &in, "CddAA", "NTLMSSP", &ntlmssp_command, &neg_flags, &cliname, - &domname)) { + &domname); + if (!parse_ok) { + parse_ok = msrpc_parse(out_mem_ctx, + &in, "CddUU", + "NTLMSSP", + &ntlmssp_command, + &neg_flags, + &cliname, + &domname); + } + if (!parse_ok) { DEBUG(1, ("ntlmssp_server_negotiate: failed to parse NTLMSSP:\n")); dump_data(2, in.data, in.length); return NT_STATUS_INVALID_PARAMETER; |