Plug double frees, patch orignally from Matthias Dieter Wallnöfer
This commit is contained in:
@@ -956,8 +956,8 @@ get_cred_kdc_referral(krb5_context context,
|
|||||||
krb5_set_error_message(context, KRB5KRB_AP_ERR_NOT_US,
|
krb5_set_error_message(context, KRB5KRB_AP_ERR_NOT_US,
|
||||||
N_("Got back an non krbtgt "
|
N_("Got back an non krbtgt "
|
||||||
"ticket referrals", ""));
|
"ticket referrals", ""));
|
||||||
krb5_free_cred_contents(context, &ticket);
|
ret = KRB5KRB_AP_ERR_NOT_US;
|
||||||
return KRB5KRB_AP_ERR_NOT_US;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
referral_realm = ticket.server->name.name_string.val[1];
|
referral_realm = ticket.server->name.name_string.val[1];
|
||||||
@@ -979,8 +979,8 @@ get_cred_kdc_referral(krb5_context context,
|
|||||||
"loops back to realm %s", ""),
|
"loops back to realm %s", ""),
|
||||||
tgt.server->realm,
|
tgt.server->realm,
|
||||||
referral_realm);
|
referral_realm);
|
||||||
krb5_free_cred_contents(context, &ticket);
|
ret = KRB5_GET_IN_TKT_LOOP;
|
||||||
return KRB5_GET_IN_TKT_LOOP;
|
goto out;
|
||||||
}
|
}
|
||||||
tickets++;
|
tickets++;
|
||||||
}
|
}
|
||||||
@@ -996,10 +996,8 @@ get_cred_kdc_referral(krb5_context context,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ret = add_cred(context, &ticket, ret_tgts);
|
ret = add_cred(context, &ticket, ret_tgts);
|
||||||
if (ret) {
|
if (ret)
|
||||||
krb5_free_cred_contents(context, &ticket);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
|
||||||
|
|
||||||
/* try realm in the referral */
|
/* try realm in the referral */
|
||||||
ret = krb5_principal_set_realm(context,
|
ret = krb5_principal_set_realm(context,
|
||||||
@@ -1017,6 +1015,7 @@ get_cred_kdc_referral(krb5_context context,
|
|||||||
out:
|
out:
|
||||||
krb5_free_principal(context, referral.server);
|
krb5_free_principal(context, referral.server);
|
||||||
krb5_free_cred_contents(context, &tgt);
|
krb5_free_cred_contents(context, &tgt);
|
||||||
|
krb5_free_cred_contents(context, &ticket);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user