diff options
-rw-r--r-- | src/providers/krb5/krb5_utils.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/providers/krb5/krb5_utils.c b/src/providers/krb5/krb5_utils.c index 4811a736..860c71b0 100644 --- a/src/providers/krb5/krb5_utils.c +++ b/src/providers/krb5/krb5_utils.c @@ -1046,12 +1046,16 @@ cc_dir_check_existing(const char *location, uid_t uid, goto done; } - dir = dirname(tmp); - if (!dir) { - DEBUG(SSSDBG_CRIT_FAILURE, - ("Cannot base get directory of %s\n", location)); - ret = EINVAL; - goto done; + if (0 == strncmp(location, "DIR::", 5)) { + dir = dirname(tmp); + if (!dir) { + DEBUG(SSSDBG_CRIT_FAILURE, + ("Cannot get base directory of %s.\n", tmp)); + ret = EINVAL; + goto done; + } + } else { + dir = tmp; } ret = cc_residual_is_used(uid, dir, SSS_KRB5_TYPE_DIR, &active); |