diff --git a/src/basic/fs-util.c b/src/basic/fs-util.c index 3ff8615797..281b85d900 100644 --- a/src/basic/fs-util.c +++ b/src/basic/fs-util.c @@ -926,6 +926,7 @@ int chase_symlinks(const char *path, const char *original_root, unsigned flags, if (fstat(child, &st) < 0) return -errno; if ((flags & CHASE_SAFE) && + (empty_or_root(root) || (size_t)(todo - buffer) > strlen(root)) && unsafe_transition(&previous_stat, &st)) return log_unsafe_transition(fd, child, path, flags);