]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Avoid duplicate "/etc/krb5.conf" in profile path
authorTom Yu <tlyu@mit.edu>
Tue, 25 Feb 2014 22:35:35 +0000 (17:35 -0500)
committerTom Yu <tlyu@mit.edu>
Fri, 6 Feb 2015 21:55:30 +0000 (16:55 -0500)
If configure gets run with --sysconfdir=/etc, "/etc/krb5.conf" shows
up twice in the profile path, which causes its contents to be read
twice.  This can cause some confusing and possibly problematic
behavior.

Add some logic to configure.in to avoid adding the duplicate entry for
"/etc/krb5.conf".

Reported independently by Denis Vlasenko and Fredrik Tolf.

(back ported from commit 8df1965d1ccdbcb8d74a3e68ad35d7579db9ac44)
(cherry picked from commit 51ef4b50e46d21374319b7070ad63ba7bb672ee2)

ticket: 8084 (new)
version_fixed: 1.11.6
status: resolved

src/configure.in
src/include/Makefile.in
src/include/osconf.hin

index 2770d706957940cf1b61d922a2f50a44f19f7020..471bacf0c351d24500286ed43dcc6e2702e2ca61 100644 (file)
@@ -1,5 +1,14 @@
 K5_AC_INIT([aclocal.m4])
 
+# Don't make duplicate profile path entries for /etc/krb5.conf if
+# $sysconfdir is /etc
+if test "$sysconfdir" == /etc; then
+  SYSCONFCONF=""
+else
+  SYSCONFCONF=":${sysconfdir}/krb5.conf"
+fi
+AC_SUBST(SYSCONFCONF)
+
 CONFIG_RULES
 KRB5_VERSION=K5_VERSION
 AC_SUBST(KRB5_VERSION)
index 21da7154c780c83721da2d16582eba148e404e83..06e6840bda473b1c0aa5df38e09c698da166a8ea 100644 (file)
@@ -56,6 +56,7 @@ LOCALSTATEDIR = @localstatedir@
 BINDIR = @bindir@
 SBINDIR = @sbindir@
 LIBDIR  = @libdir@
+SYSCONFCONF = @SYSCONFCONF@
 
 PROCESS_REPLACE = -e "s+@KRB5RCTMPDIR+$(KRB5RCTMPDIR)+" \
                  -e "s+@PREFIX+$(INSTALL_PREFIX)+" \
@@ -67,7 +68,8 @@ PROCESS_REPLACE = -e "s+@KRB5RCTMPDIR+$(KRB5RCTMPDIR)+" \
                  -e "s+@GSSMODULEDIR+$(GSS_MODULE_DIR)+" \
                  -e 's+@LOCALSTATEDIR+$(LOCALSTATEDIR)+' \
                  -e 's+@SYSCONFDIR+$(SYSCONFDIR)+' \
-                 -e 's+@DYNOBJEXT+$(DYNOBJEXT)+'
+                 -e 's+@DYNOBJEXT+$(DYNOBJEXT)+' \
+                 -e 's+@SYSCONFCONF+$(SYSCONFCONF)+'
 
 OSCONFSRC = $(srcdir)/osconf.hin
 
index c3a33c22b23be93ca95c05abf685a0ae49a3f2dc..c83ab2447296ab94806e486c66daf604f95e1fcc 100644 (file)
 #define DEFAULT_PROFILE_FILENAME "krb5.ini"
 #else /* !_WINDOWS */
 #if TARGET_OS_MAC
-#define DEFAULT_SECURE_PROFILE_PATH "/Library/Preferences/edu.mit.Kerberos:/etc/krb5.conf:@SYSCONFDIR/krb5.conf"
+#define DEFAULT_SECURE_PROFILE_PATH "/Library/Preferences/edu.mit.Kerberos:/etc/krb5.conf@SYSCONFCONF"
 #define DEFAULT_PROFILE_PATH        ("~/Library/Preferences/edu.mit.Kerberos" ":" DEFAULT_SECURE_PROFILE_PATH)
 #define KRB5_PLUGIN_BUNDLE_DIR       "/System/Library/KerberosPlugins/KerberosFrameworkPlugins"
 #define KDB5_PLUGIN_BUNDLE_DIR       "/System/Library/KerberosPlugins/KerberosDatabasePlugins"
 #define KRB5_AUTHDATA_PLUGIN_BUNDLE_DIR  "/System/Library/KerberosPlugins/KerberosAuthDataPlugins"
 #else
-#define DEFAULT_SECURE_PROFILE_PATH     "/etc/krb5.conf:@SYSCONFDIR/krb5.conf"
+#define DEFAULT_SECURE_PROFILE_PATH     "/etc/krb5.conf@SYSCONFCONF"
 #define DEFAULT_PROFILE_PATH        DEFAULT_SECURE_PROFILE_PATH
 #endif
 #endif /* _WINDOWS  */