summaryrefslogtreecommitdiff
path: root/src/basic/chase.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2023-03-30 16:15:19 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2023-03-30 16:29:45 +0900
commit8bf26bfe26c0563ae66efd8bdfaecfe4f54d6ef0 (patch)
tree466323b255d001a2739dfd74da2c9490afa95ee3 /src/basic/chase.c
parente115daa6a8f0cc80591228e4c6f651b9afc66b30 (diff)
downloadsystemd-8bf26bfe26c0563ae66efd8bdfaecfe4f54d6ef0.tar.gz
chase: add CHASE_AT_RESOLVE_IN_ROOT only when it is necessary
Diffstat (limited to 'src/basic/chase.c')
-rw-r--r--src/basic/chase.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/basic/chase.c b/src/basic/chase.c
index 7b7664096f..00c2f74e92 100644
--- a/src/basic/chase.c
+++ b/src/basic/chase.c
@@ -539,10 +539,10 @@ int chase(
if (fd < 0)
return -errno;
- flags |= CHASE_AT_RESOLVE_IN_ROOT;
- flags &= ~CHASE_PREFIX_ROOT;
+ if (!empty_or_root(root))
+ flags |= CHASE_AT_RESOLVE_IN_ROOT;
- r = chaseat(fd, path, flags, ret_path ? &p : NULL, ret_fd ? &pfd : NULL);
+ r = chaseat(fd, path, flags & ~CHASE_PREFIX_ROOT, ret_path ? &p : NULL, ret_fd ? &pfd : NULL);
if (r < 0)
return r;