Return to unsafe-byname.test CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / rsync / testsuite |
1.1 misho 1: #! /bin/sh
2:
3: # Copyright (C) 2002 by Martin Pool
4:
5: # Call directly into unsafe_symlink and test its handling of various filenames
6:
7: . "$suitedir/rsync.fns"
8:
9: test_unsafe() {
10: # $1 is the target of a symlink
11: # $2 is the directory we're copying
12: # $3 is the expected outcome: "safe" if the link lies within $2,
13: # or "unsafe" otherwise
14:
15: result=`"$TOOLDIR/t_unsafe" "$1" "$2"` || test_fail "Failed to check $1 $2"
16: if [ "$result" != "$3" ]
17: then
18: test_fail "t_unsafe $1 $2 returned \"$result\", expected \"$3\""
19: fi
20: }
21:
22: test_unsafe file from safe
23: test_unsafe dir/file from safe
24: test_unsafe dir/./file from safe
25: test_unsafe dir/. from safe
26: test_unsafe dir/ from safe
27:
28: test_unsafe /etc/passwd from unsafe
29: test_unsafe //../etc/passwd from unsafe
30: test_unsafe //./etc/passwd from unsafe
31:
32: test_unsafe ./foo from safe
33: test_unsafe ../foo from unsafe
34: test_unsafe ./../foo from unsafe
35: test_unsafe .//../foo from unsafe
36: test_unsafe ./../foo from/.. unsafe
37: test_unsafe ../dest from/dir safe
38: test_unsafe ../../dest from//dir unsafe
39: test_unsafe ..//../dest from/dir unsafe
40:
41: test_unsafe .. from/file safe
42: test_unsafe ../.. from/file unsafe
43: test_unsafe ..//.. from//file unsafe
44: test_unsafe dir/.. from safe
45: test_unsafe dir/../.. from unsafe
46: test_unsafe dir/..//.. from unsafe
47:
48: test_unsafe '' from unsafe
49:
1.1.1.2 ! misho 50: # Based on tests from unsafe-links by VladimĂr Michl
1.1 misho 51: test_unsafe ../../unsafe/unsafefile from/safe unsafe
52: test_unsafe ..//../unsafe/unsafefile from/safe unsafe
53: test_unsafe ../files/file1 from/safe safe
54:
55: test_unsafe ../../unsafe/unsafefile safe unsafe
56: test_unsafe ../files/file1 safe unsafe
57:
58: test_unsafe ../../unsafe/unsafefile `pwd`/from/safe safe
59: test_unsafe ../files/file1 `pwd`/from/safe safe