always check for error token in case of a failure
This commit is contained in:
@@ -768,22 +768,21 @@ repl_mutual
|
|||||||
/* There is no OID wrapping. */
|
/* There is no OID wrapping. */
|
||||||
indata.length = input_token->length;
|
indata.length = input_token->length;
|
||||||
indata.data = input_token->value;
|
indata.data = input_token->value;
|
||||||
kret = krb5_rd_rep (context,
|
kret = krb5_rd_rep(context,
|
||||||
ctx->auth_context,
|
ctx->auth_context,
|
||||||
&indata,
|
&indata,
|
||||||
&repl);
|
&repl);
|
||||||
if (kret >= ASN1_BAD_TIMEFORMAT && kret <= ASN1_INDEF_EXTRA_DATA) {
|
if (kret) {
|
||||||
ret = _gsskrb5_decapsulate (minor_status,
|
ret = _gsskrb5_decapsulate(minor_status,
|
||||||
input_token,
|
input_token,
|
||||||
&indata,
|
&indata,
|
||||||
"\x03\x00",
|
"\x03\x00",
|
||||||
GSS_KRB5_MECHANISM);
|
GSS_KRB5_MECHANISM);
|
||||||
if (ret == GSS_S_COMPLETE) {
|
if (ret == GSS_S_COMPLETE) {
|
||||||
*minor_status = handle_error_packet(context, ctx, indata);
|
*minor_status = handle_error_packet(context, ctx, indata);
|
||||||
return GSS_S_FAILURE;
|
} else {
|
||||||
|
*minor_status = kret;
|
||||||
}
|
}
|
||||||
} else if (kret) {
|
|
||||||
*minor_status = kret;
|
|
||||||
return GSS_S_FAILURE;
|
return GSS_S_FAILURE;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user