From: Yu Watanabe Date: Sat, 2 Dec 2017 15:28:50 +0000 (+0900) Subject: test-fs-util: add more tests for chase_symlinks() X-Git-Tag: v236~70^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=95f35cccf045b76cd2a4c28d873c239f5b50f638;p=thirdparty%2Fsystemd.git test-fs-util: add more tests for chase_symlinks() --- diff --git a/src/test/test-fs-util.c b/src/test/test-fs-util.c index 81aa9856b76..86d963c4c78 100644 --- a/src/test/test-fs-util.c +++ b/src/test/test-fs-util.c @@ -168,6 +168,26 @@ static void test_chase_symlinks(void) { assert_se(r > 0 && path_equal(result, "/etc")); result = mfree(result); + r = chase_symlinks("/../.././//../../etc", NULL, 0, &result); + assert_se(r > 0); + assert_se(streq(result, "/etc")); + result = mfree(result); + + r = chase_symlinks("/../.././//../../test-chase.fsldajfl", NULL, CHASE_NONEXISTENT, &result); + assert_se(r == 0); + assert_se(streq(result, "/test-chase.fsldajfl")); + result = mfree(result); + + r = chase_symlinks("/../.././//../../etc", "/", CHASE_PREFIX_ROOT, &result); + assert_se(r > 0); + assert_se(streq(result, "/etc")); + result = mfree(result); + + r = chase_symlinks("/../.././//../../test-chase.fsldajfl", "/", CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &result); + assert_se(r == 0); + assert_se(streq(result, "/test-chase.fsldajfl")); + result = mfree(result); + r = chase_symlinks("/etc/machine-id/foo", NULL, 0, &result); assert_se(r == -ENOTDIR); result = mfree(result);