From b46f6d865efa6dd50ed8b83d498f9e04919c9bc9 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 14 Oct 2001 06:14:11 +0000 Subject: fixed NTLMSSP with XP servers (who don't send the duplicate challenge in the asn1 spnego structures) (This used to be commit 131010e9fb842b4d5a8660c538a3313c95fadae7) --- source3/libsmb/clispnego.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'source3/libsmb/clispnego.c') diff --git a/source3/libsmb/clispnego.c b/source3/libsmb/clispnego.c index 6b705658c3..da8c6450ae 100644 --- a/source3/libsmb/clispnego.c +++ b/source3/libsmb/clispnego.c @@ -241,6 +241,9 @@ BOOL spnego_parse_challenge(DATA_BLOB blob, BOOL ret; ASN1_DATA data; + ZERO_STRUCTP(chal1); + ZERO_STRUCTP(chal2); + asn1_load(&data, blob); asn1_start_tag(&data,ASN1_CONTEXT(1)); asn1_start_tag(&data,ASN1_SEQUENCE(0)); @@ -257,9 +260,12 @@ BOOL spnego_parse_challenge(DATA_BLOB blob, asn1_read_octet_string(&data, chal1); asn1_end_tag(&data); - asn1_start_tag(&data,ASN1_CONTEXT(3)); - asn1_read_octet_string(&data, chal2); - asn1_end_tag(&data); + /* the second challenge is optional (XP doesn't send it) */ + if (asn1_tag_remaining(&data)) { + asn1_start_tag(&data,ASN1_CONTEXT(3)); + asn1_read_octet_string(&data, chal2); + asn1_end_tag(&data); + } asn1_end_tag(&data); asn1_end_tag(&data); -- cgit