diff options
author | Jeff Layton <jlayton@samba.org> | 2014-04-07 14:35:17 -0400 |
---|---|---|
committer | Jeff Layton <jlayton@samba.org> | 2014-04-07 14:35:17 -0400 |
commit | a016e18969d10e3c777f35fe21b1c1f8c1d70880 (patch) | |
tree | f8d4708c98b53e87ae4a6c00324f9481c4f9242e | |
parent | 00a1cee869fce5b6aa79683da19a2529c2cfd690 (diff) | |
download | cifs-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.c | 13 |
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'; |