chase: drop redundant call of delete_trailing_chars()
In that branch, 'root' is a non-root and absolute path. Hence, delete_trailing_chars() does not make the path empty. And, if the path contains redundant slashes at the end, that will be dropped by path_simplify().
This commit is contained in:
committed by
Daan De Meyer
parent
0f9aca9a98
commit
0d68cd72b6
+6
-8
@@ -493,18 +493,19 @@ int chase(const char *path, const char *original_root, ChaseFlags flags, char **
|
||||
return r;
|
||||
|
||||
/* Simplify the root directory, so that it has no duplicate slashes and nothing at the
|
||||
* end. While we won't resolve the root path we still simplify it. Note that dropping the
|
||||
* trailing slash should not change behaviour, since when opening it we specify O_DIRECTORY
|
||||
* anyway. Moreover at the end of this function after processing everything we'll always turn
|
||||
* the empty string back to "/". */
|
||||
delete_trailing_chars(root, "/");
|
||||
* end. While we won't resolve the root path we still simplify it. */
|
||||
path_simplify(root);
|
||||
|
||||
assert(path_is_absolute(root));
|
||||
assert(!empty_or_root(root));
|
||||
|
||||
if (flags & CHASE_PREFIX_ROOT) {
|
||||
absolute = path_join(root, path);
|
||||
if (!absolute)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
flags |= CHASE_AT_RESOLVE_IN_ROOT;
|
||||
}
|
||||
|
||||
if (!absolute) {
|
||||
@@ -524,9 +525,6 @@ int chase(const char *path, const char *original_root, ChaseFlags flags, char **
|
||||
if (fd < 0)
|
||||
return -errno;
|
||||
|
||||
if (!empty_or_root(root))
|
||||
flags |= CHASE_AT_RESOLVE_IN_ROOT;
|
||||
|
||||
r = chaseat(fd, path, flags & ~CHASE_PREFIX_ROOT, ret_path ? &p : NULL, ret_fd ? &pfd : NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
Reference in New Issue
Block a user