From: Stefan Metzmacher Date: Mon, 2 Jun 2008 14:27:44 +0000 (+0200) Subject: krb5_init_sec_context: skip the token header when GSS_C_DCE_STYLE is specified X-Git-Tag: samba-4.0.0alpha5~74^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=58f66184f0f732a78e86bbb0f3c29e920f086d08;p=thirdparty%2Fsamba.git 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 --- 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)