clikrb5: Prefer krb5_free_keytab_entry_contents to krb5_kt_free_entry.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 4 Jun 2009 21:43:31 +0000 (23:43 +0200)
committerKarolin Seeger <kseeger@samba.org>
Tue, 24 Nov 2009 12:09:50 +0000 (13:09 +0100)
Both functions exist in MIT Kerberos >= 1.7, but only
krb5_free_keytab_entry_contents has a prototype.
(cherry picked from commit b65ba0e26c781647e097f3f6fa279c7f3f7f4bd2)

Part of a fix for bug #6918 (Build breaks with krb5-client-1.7-6.1.i586).

source3/libsmb/clikrb5.c

index 6e6793b167b7caddf2263f0e995fff0ba857137d..1ccc7ecdec3891e8769110678c7c090479ca6e26 100644 (file)
@@ -924,10 +924,15 @@ failed:
 
  krb5_error_code smb_krb5_kt_free_entry(krb5_context context, krb5_keytab_entry *kt_entry)
 {
-#if defined(HAVE_KRB5_KT_FREE_ENTRY)
-       return krb5_kt_free_entry(context, kt_entry);
-#elif defined(HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS)
+/* Try krb5_free_keytab_entry_contents first, since 
+ * MIT Kerberos >= 1.7 has both krb5_free_keytab_entry_contents and 
+ * krb5_kt_free_entry but only has a prototype for the first, while the 
+ * second is considered private. 
+ */
+#if defined(HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS)
        return krb5_free_keytab_entry_contents(context, kt_entry);
+#elif defined(HAVE_KRB5_KT_FREE_ENTRY)
+       return krb5_kt_free_entry(context, kt_entry);
 #else
 #error UNKNOWN_KT_FREE_FUNCTION
 #endif