summaryrefslogtreecommitdiff
path: root/source4/libcli/auth
diff options
context:
space:
mode:
Diffstat (limited to 'source4/libcli/auth')
-rw-r--r--source4/libcli/auth/spnego.h3
-rw-r--r--source4/libcli/auth/spnego_parse.c8
2 files changed, 7 insertions, 4 deletions
diff --git a/source4/libcli/auth/spnego.h b/source4/libcli/auth/spnego.h
index eba98c5218..decd79e107 100644
--- a/source4/libcli/auth/spnego.h
+++ b/source4/libcli/auth/spnego.h
@@ -36,7 +36,8 @@
enum spnego_negResult {
SPNEGO_ACCEPT_COMPLETED = 0,
SPNEGO_ACCEPT_INCOMPLETE = 1,
- SPNEGO_REJECT = 2
+ SPNEGO_REJECT = 2,
+ SPNEGO_NONE_RESULT = 3
};
struct spnego_negTokenInit {
diff --git a/source4/libcli/auth/spnego_parse.c b/source4/libcli/auth/spnego_parse.c
index c2e23c0ffe..9c50e3887d 100644
--- a/source4/libcli/auth/spnego_parse.c
+++ b/source4/libcli/auth/spnego_parse.c
@@ -231,9 +231,11 @@ static BOOL write_negTokenTarg(ASN1_DATA *asn1, struct spnego_negTokenTarg *toke
asn1_push_tag(asn1, ASN1_CONTEXT(1));
asn1_push_tag(asn1, ASN1_SEQUENCE(0));
- asn1_push_tag(asn1, ASN1_CONTEXT(0));
- asn1_write_enumerated(asn1, token->negResult);
- asn1_pop_tag(asn1);
+ if (token->negResult != SPNEGO_NONE_RESULT) {
+ asn1_push_tag(asn1, ASN1_CONTEXT(0));
+ asn1_write_enumerated(asn1, token->negResult);
+ asn1_pop_tag(asn1);
+ }
if (token->supportedMech) {
asn1_push_tag(asn1, ASN1_CONTEXT(1));