gss/krb5: gsskrb5_acceptor_start authenticator leak (take two)
Change-Id: I11be62ab806ea89258fe60e29e6d6488908070fa
This commit is contained in:
@@ -537,8 +537,8 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
|
|||||||
&ctx->flags,
|
&ctx->flags,
|
||||||
&ctx->fwd_data);
|
&ctx->fwd_data);
|
||||||
|
|
||||||
krb5_free_authenticator(context, &authenticator);
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
krb5_free_authenticator(context, &authenticator);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -548,9 +548,8 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
|
|||||||
kret = krb5_crypto_init(context,
|
kret = krb5_crypto_init(context,
|
||||||
ctx->auth_context->keyblock,
|
ctx->auth_context->keyblock,
|
||||||
0, &crypto);
|
0, &crypto);
|
||||||
if(kret) {
|
if (kret) {
|
||||||
krb5_free_authenticator(context, &authenticator);
|
krb5_free_authenticator(context, &authenticator);
|
||||||
|
|
||||||
ret = GSS_S_FAILURE;
|
ret = GSS_S_FAILURE;
|
||||||
*minor_status = kret;
|
*minor_status = kret;
|
||||||
return ret;
|
return ret;
|
||||||
@@ -564,10 +563,10 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
|
|||||||
kret = krb5_verify_checksum(context,
|
kret = krb5_verify_checksum(context,
|
||||||
crypto, KRB5_KU_AP_REQ_AUTH_CKSUM, NULL, 0,
|
crypto, KRB5_KU_AP_REQ_AUTH_CKSUM, NULL, 0,
|
||||||
authenticator->cksum);
|
authenticator->cksum);
|
||||||
krb5_free_authenticator(context, &authenticator);
|
|
||||||
krb5_crypto_destroy(context, crypto);
|
krb5_crypto_destroy(context, crypto);
|
||||||
|
|
||||||
if(kret) {
|
if (kret) {
|
||||||
|
krb5_free_authenticator(context, &authenticator);
|
||||||
ret = GSS_S_BAD_SIG;
|
ret = GSS_S_BAD_SIG;
|
||||||
*minor_status = kret;
|
*minor_status = kret;
|
||||||
return ret;
|
return ret;
|
||||||
|
Reference in New Issue
Block a user