summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2008-06-02 16:27:44 +0200
committerStefan Metzmacher <metze@samba.org>2008-06-02 16:58:04 +0200
commit58f66184f0f732a78e86bbb0f3c29e920f086d08 (patch)
tree857891ff08cf4a9a0196f8ae45b36cda6d05309e
parent00ad3f8a6dfb742113c1eeedb4c9a81b0a64947e (diff)
downloadsamba-58f66184f0f732a78e86bbb0f3c29e920f086d08.tar.gz
samba-58f66184f0f732a78e86bbb0f3c29e920f086d08.tar.xz
samba-58f66184f0f732a78e86bbb0f3c29e920f086d08.zip
krb5_init_sec_context: skip the token header when GSS_C_DCE_STYLE is specified
Windows (and heimdal) accepts packets with token header in the server, but it doesn't match the windows client. We now match the windows client and that fixes also the display in wireshark. metze
-rw-r--r--source/heimdal/lib/gssapi/krb5/init_sec_context.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/source/heimdal/lib/gssapi/krb5/init_sec_context.c b/source/heimdal/lib/gssapi/krb5/init_sec_context.c
index d4482a54b27..ab7624eef0e 100644
--- a/source/heimdal/lib/gssapi/krb5/init_sec_context.c
+++ b/source/heimdal/lib/gssapi/krb5/init_sec_context.c
@@ -540,12 +540,18 @@ init_auth
goto failure;
}
- ret = _gsskrb5_encapsulate (minor_status, &outbuf, output_token,
- (u_char *)"\x01\x00", GSS_KRB5_MECHANISM);
- if (ret)
- goto failure;
+ if (flags & GSS_C_DCE_STYLE) {
+ output_token->value = outbuf.data;
+ output_token->length = outbuf.length;
+ } else {
+ ret = _gsskrb5_encapsulate (minor_status, &outbuf, output_token,
+ (u_char *)"\x01\x00", GSS_KRB5_MECHANISM);
+ if (ret)
+ goto failure;
+
+ krb5_data_free (&outbuf);
+ }
- krb5_data_free (&outbuf);
krb5_free_creds(context, kcred);
free_Checksum(&cksum);
if (cred == NULL)