summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/providers/krb5/krb5_utils.c16
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);