Fix kadm5_free_policy_ent use against Heimdal.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 15 Sep 2011 15:10:49 +0000 (17:10 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 15 Sep 2011 15:10:49 +0000 (17:10 +0200)
CHANGELOG
configure.ac
pam_krb5_migrate.c
pam_krb5_migrate.h

index 7aadb4718555fd6491be2c13cbb6a951366050df..e1b5b4ae7812eba1eed6cd378ca3446ad29ce125 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+Version 0.0.10 15 Sep 2011
+   - cope with kadm5_free_policy_ent having a different number of arguments in
+     Heimdal.
+   - allow overriding KRB5CONFIG environment variable, useful when
+     there are multiple Kerberos versions on the system.
+
 Version 0.0.9  30 Jul 2009
    - fix syntax errors in man pages.
    - link against com_err to avoid unresolved symbols
index a06be3787747b5605466885bc60b9eaf38a19714..2d5225d4620c5346d907860dd5cb6feabe8c0274 100644 (file)
@@ -1,11 +1,27 @@
 AC_INIT(pam-krb5-migrate, 0.0.9, [jelmer@samba.org])
 AC_PROG_CC
-AC_PATH_PROGS(KRB5CONFIG, krb5-config krb5-config.heimdal, no)
+AC_ARG_VAR(KRB5CONFIG, [Path to krb5-config script])
+AC_PATH_PROGS(KRB5CONFIG, $ac_cv_env_KRB5CONFIG_value, krb5-config krb5-config.heimdal)
 AC_CHECK_LIB(pam, pam_get_item, [], [AC_MSG_ERROR([pam not found])])
 save_LIBS="$LIBS"
+save_CFLAGS="$CFLAGS"
 LIBS="$LIBS `$ac_cv_path_KRB5CONFIG --libs kadm-client`"
+CFLAGS="$CFLAGS `$ac_cv_path_KRB5CONFIG --cflags kadm-client`"
 AC_CHECK_FUNCS(kadm5_get_policy)
 PKG_CHECK_MODULES(COM_ERR, com_err)
+AC_COMPILE_CHECK([number of arguments to kadm5_free_policy_ent],
+[
+#include <stdio.h>
+#include <krb5.h>
+#include <kadm5/admin.h>
+#include <kadm5/kadm5_err.h>
+],
+[ kadm5_free_policy_ent(NULL); ],
+[
+AC_MSG_RESULT(1)
+AC_DEFINE(KADM5_FREE_POLICY_ENT_1_ARG)],
+[ AC_MSG_RESULT(2) ]
+)
 LIBS="$save_LIBS"
 AC_CONFIG_FILES([Makefile.settings])
 AC_OUTPUT
index cbe1b2d0f4c0a7ace645c407ef99976b73f61531..ae5126a6c36eea3aa8ef9aa4d403ebe02811e8bd 100644 (file)
@@ -4,6 +4,7 @@
    database.
 
    Copyright (C) Steve Langasek 2000-2001
+   Copyright (C) Jelmer Vernooij 2006
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -389,7 +390,11 @@ int pam_sm_authenticate(pam_handle_t *pamh, int flags,
         }
         newprinc.policy = "default";
         mask |= KADM5_POLICY;
+#if KADM5_FREE_POLICY_ENT_1_ARG
+        (void) kadm5_free_policy_ent(&defpol);
+#else
         (void) kadm5_free_policy_ent(handle, &defpol);
+#endif
     } else {
         if (debug) {
             _log_err(LOG_DEBUG, pamh,
index f35ba170974a9173d2374d24695e722641436f10..2738a38450cc91b11905a4f74628e141f31ea87e 100644 (file)
@@ -5,6 +5,7 @@
    database.
 
    Copyright (C) Steve Langasek 2000-2001
+   Copyright (C) Jelmer Vernooij 2006
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by