Skip to content

Commit

Permalink
Avoid duplicate "/etc/krb5.conf" in profile path
Browse files Browse the repository at this point in the history
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 8df1965)
(cherry picked from commit 51ef4b5)

ticket: 8084 (new)
version_fixed: 1.11.6
status: resolved
  • Loading branch information
tlyu committed Feb 6, 2015
1 parent 6dda4d7 commit 2158fa3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
9 changes: 9 additions & 0 deletions 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)
Expand Down
4 changes: 3 additions & 1 deletion src/include/Makefile.in
Expand Up @@ -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)+" \
Expand All @@ -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

Expand Down
4 changes: 2 additions & 2 deletions src/include/osconf.hin
Expand Up @@ -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@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 */
Expand Down

0 comments on commit 2158fa3

Please sign in to comment.