diff options
Diffstat (limited to 'source4/heimdal/lib/gssapi')
-rw-r--r-- | source4/heimdal/lib/gssapi/krb5/init_sec_context.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/source4/heimdal/lib/gssapi/krb5/init_sec_context.c b/source4/heimdal/lib/gssapi/krb5/init_sec_context.c index 4538a5376e..53855ca045 100644 --- a/source4/heimdal/lib/gssapi/krb5/init_sec_context.c +++ b/source4/heimdal/lib/gssapi/krb5/init_sec_context.c @@ -768,22 +768,21 @@ repl_mutual /* There is no OID wrapping. */ indata.length = input_token->length; indata.data = input_token->value; - kret = krb5_rd_rep (context, - ctx->auth_context, - &indata, - &repl); - if (kret >= ASN1_BAD_TIMEFORMAT && kret <= ASN1_INDEF_EXTRA_DATA) { - ret = _gsskrb5_decapsulate (minor_status, - input_token, - &indata, - "\x03\x00", - GSS_KRB5_MECHANISM); + kret = krb5_rd_rep(context, + ctx->auth_context, + &indata, + &repl); + if (kret) { + ret = _gsskrb5_decapsulate(minor_status, + input_token, + &indata, + "\x03\x00", + GSS_KRB5_MECHANISM); if (ret == GSS_S_COMPLETE) { - *minor_status = handle_error_packet(context, ctx, indata); - return GSS_S_FAILURE; + *minor_status = handle_error_packet(context, ctx, indata); + } else { + *minor_status = kret; } - } else if (kret) { - *minor_status = kret; return GSS_S_FAILURE; } } else { |