if (prefix) {
p = path_startswith_full(path, prefix, /* accept_dot_dot= */ false);
if (!p)
- return -ENOTDIR;
- } else
- p = path;
+ return -EINVAL;
- if (prefix) {
fd = open(prefix, O_PATH|O_DIRECTORY|O_CLOEXEC);
if (fd < 0)
return -errno;
- }
+ } else
+ p = path;
return mkdirat_parents_internal(fd, p, mode, uid, gid, flags, _mkdirat);
}
assert_se(is_dir(q, false) > 0);
assert_se(is_dir(q, true) > 0);
- assert_se(mkdir_p_safe(tmp, "/tmp/test-mkdir-outside", 0755, UID_INVALID, GID_INVALID, 0) == -ENOTDIR);
+ ASSERT_ERROR(mkdir_p_safe(tmp, "/tmp/test-mkdir-outside", 0755, UID_INVALID, GID_INVALID, 0), EINVAL);
p = mfree(p);
assert_se(p = path_join(tmp, "zero-mode/should-fail-to-create-child"));