krb5 commit [krb5-1.11]: Avoid duplicate "/etc/krb5.conf" in profile path
Tom Yu
tlyu at mit.edu
Fri Feb 6 17:26:47 EST 2015
https://github.com/krb5/krb5/commit/2158fa3a0aa3c0f0717cea3e1da1c77867e3c798
commit 2158fa3a0aa3c0f0717cea3e1da1c77867e3c798
Author: Tom Yu <tlyu at mit.edu>
Date: Tue Feb 25 17:35:35 2014 -0500
Avoid duplicate "/etc/krb5.conf" in profile path
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 | 9 +++++++++
src/include/Makefile.in | 4 +++-
src/include/osconf.hin | 4 ++--
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/configure.in b/src/configure.in
index 2770d70..471bacf 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -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)
diff --git a/src/include/Makefile.in b/src/include/Makefile.in
index 21da715..06e6840 100644
--- a/src/include/Makefile.in
+++ b/src/include/Makefile.in
@@ -56,6 +56,7 @@ LOCALSTATEDIR = @localstatedir@
BINDIR = @bindir@
SBINDIR = @sbindir@
LIBDIR = @libdir@
+SYSCONFCONF = @SYSCONFCONF@
PROCESS_REPLACE = -e "s+ at KRB5RCTMPDIR+$(KRB5RCTMPDIR)+" \
-e "s+ at PREFIX+$(INSTALL_PREFIX)+" \
@@ -67,7 +68,8 @@ PROCESS_REPLACE = -e "s+ at KRB5RCTMPDIR+$(KRB5RCTMPDIR)+" \
-e "s+ at GSSMODULEDIR+$(GSS_MODULE_DIR)+" \
-e 's+ at LOCALSTATEDIR+$(LOCALSTATEDIR)+' \
-e 's+ at SYSCONFDIR+$(SYSCONFDIR)+' \
- -e 's+ at DYNOBJEXT+$(DYNOBJEXT)+'
+ -e 's+ at DYNOBJEXT+$(DYNOBJEXT)+' \
+ -e 's+ at SYSCONFCONF+$(SYSCONFCONF)+'
OSCONFSRC = $(srcdir)/osconf.hin
diff --git a/src/include/osconf.hin b/src/include/osconf.hin
index c3a33c2..c83ab24 100644
--- a/src/include/osconf.hin
+++ b/src/include/osconf.hin
@@ -44,13 +44,13 @@
#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 at 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 at SYSCONFCONF"
#define DEFAULT_PROFILE_PATH DEFAULT_SECURE_PROFILE_PATH
#endif
#endif /* _WINDOWS */
More information about the cvs-krb5
mailing list