diff options
Diffstat (limited to 'source4/heimdal/lib')
| -rw-r--r-- | source4/heimdal/lib/gssapi/krb5/init_sec_context.c | 16 | 
1 files changed, 11 insertions, 5 deletions
diff --git a/source4/heimdal/lib/gssapi/krb5/init_sec_context.c b/source4/heimdal/lib/gssapi/krb5/init_sec_context.c index d4482a54b2..ab7624eef0 100644 --- a/source4/heimdal/lib/gssapi/krb5/init_sec_context.c +++ b/source4/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)  | 
