summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Layton <jlayton@samba.org>2014-04-07 14:35:17 -0400
committerJeff Layton <jlayton@samba.org>2014-04-07 14:35:17 -0400
commita016e18969d10e3c777f35fe21b1c1f8c1d70880 (patch)
treef8d4708c98b53e87ae4a6c00324f9481c4f9242e
parent00a1cee869fce5b6aa79683da19a2529c2cfd690 (diff)
downloadcifs-utils-a016e18969d10e3c777f35fe21b1c1f8c1d70880.tar.gz
cifs-utils-a016e18969d10e3c777f35fe21b1c1f8c1d70880.tar.bz2
cifs-utils-a016e18969d10e3c777f35fe21b1c1f8c1d70880.zip
cifs: use krb5_kt_default() to determine default keytab location
...don't assume that it's in /etc/krb5.keytab. Reported-by: Konstantin Lepikhov <klepikho@redhat.com> Signed-off-by: Jeff Layton <jlayton@samba.org>
-rw-r--r--cifs.upcall.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/cifs.upcall.c b/cifs.upcall.c
index cc65824..e8544c2 100644
--- a/cifs.upcall.c
+++ b/cifs.upcall.c
@@ -55,7 +55,6 @@
#define CIFS_DEFAULT_KRB5_DIR "/tmp"
#define CIFS_DEFAULT_KRB5_USER_DIR "/run/user/%U"
#define CIFS_DEFAULT_KRB5_PREFIX "krb5cc"
-#define CIFS_DEFAULT_KRB5_KEYTAB "/etc/krb5.keytab"
#define MAX_CCNAME_LEN PATH_MAX + 5
@@ -205,9 +204,15 @@ init_cc_from_keytab(const char *keytab_name, const char *user)
goto icfk_cleanup;
}
- ret = krb5_kt_resolve(context, keytab_name, &keytab);
+ if (keytab_name)
+ ret = krb5_kt_resolve(context, keytab_name, &keytab);
+ else
+ ret = krb5_kt_default(context, &keytab);
+
if (ret) {
- syslog(LOG_DEBUG, "krb5_kt_resolve: %d", (int)ret);
+ syslog(LOG_DEBUG, "%s: %d",
+ keytab_name ? "krb5_kt_resolve" : "krb5_kt_default",
+ (int)ret);
goto icfk_cleanup;
}
@@ -841,7 +846,7 @@ int main(const int argc, char *const argv[])
struct decoded_args arg;
const char *oid;
uid_t uid;
- char *keytab_name = CIFS_DEFAULT_KRB5_KEYTAB;
+ char *keytab_name = NULL;
time_t best_time = 0;
hostbuf[0] = '\0';