From 24be89ebd8e9fbf97cb60c304b615ab26869c204 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 17 Apr 2023 05:19:07 +0900 Subject: chase: make the result absolute when a symlink is absolute As the path may be outside of the specified dir_fd. --- src/test/test-chase.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/test') diff --git a/src/test/test-chase.c b/src/test/test-chase.c index 52ea21a54c..c5fc08ca25 100644 --- a/src/test/test-chase.c +++ b/src/test/test-chase.c @@ -457,7 +457,16 @@ TEST(chaseat) { fd = safe_close(fd); - /* If the file descriptor does not point to the root directory, the result will be relative. */ + /* If the file descriptor does not point to the root directory, the result will be relative + * unless the result is outside of the specified file descriptor. */ + + assert_se(chaseat(tfd, "abc", 0, &result, NULL) >= 0); + assert_se(streq(result, "/usr")); + result = mfree(result); + + assert_se(chaseat(tfd, "/abc", 0, &result, NULL) >= 0); + assert_se(streq(result, "/usr")); + result = mfree(result); assert_se(chaseat(tfd, "abc", CHASE_AT_RESOLVE_IN_ROOT, NULL, NULL) == -ENOENT); assert_se(chaseat(tfd, "/abc", CHASE_AT_RESOLVE_IN_ROOT, NULL, NULL) == -ENOENT); -- cgit v1.2.1