]> 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>
Thu, 26 Jun 2014 20:24:32 +0000 (16:24 -0400)
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)

ticket: 3277
version_fixed: 1.12.2
status: resolved

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

index 5b7121bf8ce103a43735de348974d1d46608a59f..2d293362b367228492e6c1a774f7d65134532591 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 e13042a856f5af9ccc6725a797bc102685692fef..4f478d1d4c1438ab966d787092b4903e5c558c46 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 90ab86d1291f745d7609aa58ec91466fb15c266f..0dbd22d2bcbd355cd2d52879edf4482b8b67fbbc 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  */