osx: deal with more kerberos damage
[openafs.git] / src / platform / DARWIN / AFSPreference / Krb5Util.m
index fff03ca..b6050d0 100644 (file)
                                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