From ab6e3fce040f9ad27cbce44e9038a24f15b601c8 Mon Sep 17 00:00:00 2001 From: Matthieu Patou Date: Sun, 15 Aug 2010 18:31:28 +0400 Subject: s4:heimdal: import lorikeet-heimdal-201009250123 (commit 42cabfb5b683dbcb97d583c397b897507689e382) I based this on Matthieu's import of lorikeet-heimdal, and then updated it to this commit. Andrew Bartlett --- source4/heimdal/lib/krb5/get_cred.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'source4/heimdal/lib/krb5/get_cred.c') diff --git a/source4/heimdal/lib/krb5/get_cred.c b/source4/heimdal/lib/krb5/get_cred.c index 75e44f0cd4..8f9d462190 100644 --- a/source4/heimdal/lib/krb5/get_cred.c +++ b/source4/heimdal/lib/krb5/get_cred.c @@ -314,7 +314,7 @@ _krb5_get_krbtgt(krb5_context context, } /* DCE compatible decrypt proc */ -static krb5_error_code +static krb5_error_code KRB5_CALLCONV decrypt_tkt_with_subkey (krb5_context context, krb5_keyblock *key, krb5_key_usage usage, @@ -939,9 +939,9 @@ get_cred_kdc_referral(krb5_context context, ret = EINVAL; if (ret) { - ret = get_cred_kdc_address (context, ccache, flags, NULL, - &referral, &tgt, impersonate_principal, - second_ticket, &ticket); + ret = get_cred_kdc_address(context, ccache, flags, NULL, + &referral, &tgt, impersonate_principal, + second_ticket, &ticket); if (ret) goto out; } @@ -956,8 +956,8 @@ get_cred_kdc_referral(krb5_context context, krb5_set_error_message(context, KRB5KRB_AP_ERR_NOT_US, N_("Got back an non krbtgt " "ticket referrals", "")); - krb5_free_cred_contents(context, &ticket); - return KRB5KRB_AP_ERR_NOT_US; + ret = KRB5KRB_AP_ERR_NOT_US; + goto out; } 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", ""), tgt.server->realm, referral_realm); - krb5_free_cred_contents(context, &ticket); - return KRB5_GET_IN_TKT_LOOP; + ret = KRB5_GET_IN_TKT_LOOP; + goto out; } tickets++; } @@ -996,10 +996,8 @@ get_cred_kdc_referral(krb5_context context, } ret = add_cred(context, &ticket, ret_tgts); - if (ret) { - krb5_free_cred_contents(context, &ticket); + if (ret) goto out; - } /* try realm in the referral */ ret = krb5_principal_set_realm(context, @@ -1017,6 +1015,7 @@ get_cred_kdc_referral(krb5_context context, out: krb5_free_principal(context, referral.server); krb5_free_cred_contents(context, &tgt); + krb5_free_cred_contents(context, &ticket); return ret; } -- cgit