]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
chase: add CHASE_AT_RESOLVE_IN_ROOT only when it is necessary 27063/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 30 Mar 2023 07:15:19 +0000 (16:15 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 30 Mar 2023 07:29:45 +0000 (16:29 +0900)
src/basic/chase.c

index 7b7664096f78abce9b5f969528b47e3b82871dc4..00c2f74e927ac90ca381e3b4633d296559f9dd24 100644 (file)
@@ -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;