From: Derrick Brashear Date: Thu, 15 Mar 2012 15:51:39 +0000 (-0400) Subject: osx: deal with more kerberos damage X-Git-Tag: upstream/1.6.1^2 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=74edc033f1357fb09898b304b784b0c42a5a41cd;p=packages%2Fo%2Fopenafs.git osx: deal with more kerberos damage the number of things which can return success without succeeding is truly sad. Reviewed-on: http://gerrit.openafs.org/6911 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 59b57ff85acbef10bcec9724c42e3bad78538687) Change-Id: Ie41cb88f9b58945b8ae486eab671b00fe0cf10a6 Reviewed-on: http://gerrit.openafs.org/6964 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- diff --git a/src/platform/DARWIN/AFSPreference/Krb5Util.m b/src/platform/DARWIN/AFSPreference/Krb5Util.m index fff03caad..b6050d0fd 100644 --- a/src/platform/DARWIN/AFSPreference/Krb5Util.m +++ b/src/platform/DARWIN/AFSPreference/Krb5Util.m @@ -150,26 +150,26 @@ in.client = me; } if ((ret == 0) && (in.client)) { - ret = krb5_build_principal_ext(kcontext, &server, - krb5_princ_realm(kcontext, - in.client)->length, - krb5_princ_realm(kcontext, - in.client)->data, - 6, "krbtgt", - krb5_princ_realm(kcontext, - in.client)->length, - krb5_princ_realm(kcontext, - in.client)->data, - 0); - } - if (ret == 0) { - in.server = server; - ret = krb5_get_renewed_creds(kcontext, &in, me, id, server); - } - if (ret == 0) { - ret = krb5_cc_initialize (kcontext, id, me); - ret = krb5_cc_store_cred(kcontext, id, &in); - krb5_cc_close(kcontext,id); + ret = krb5_build_principal_ext(kcontext, &server, + krb5_princ_realm(kcontext, + in.client)->length, + krb5_princ_realm(kcontext, + in.client)->data, + 6, "krbtgt", + krb5_princ_realm(kcontext, + in.client)->length, + krb5_princ_realm(kcontext, + in.client)->data, + 0); + if (ret == 0 && server) { + in.server = server; + ret = krb5_get_renewed_creds(kcontext, &in, me, id, server); + if (ret == 0) { + ret = krb5_cc_initialize (kcontext, id, me); + ret = krb5_cc_store_cred(kcontext, id, &in); + krb5_cc_close(kcontext,id); + } + } } krb5_free_principal(kcontext, server); #else