3 # Copyright (C) 2002 by Martin Pool
5 # Call directly into unsafe_symlink and test its handling of various filenames
7 .
"$suitedir/rsync.fns"
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
15 result
=`"$TOOLDIR/t_unsafe" "$1" "$2"` || test_fail
"Failed to check $1 $2"
16 if [ "$result" != "$3" ]
18 test_fail
"t_unsafe $1 $2 returned \"$result\", expected \"$3\""
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
28 test_unsafe
/etc
/passwd from unsafe
29 test_unsafe
//..
/etc
/passwd from unsafe
30 test_unsafe
//.
/etc
/passwd from unsafe
32 test_unsafe .
/foo from safe
33 test_unsafe ..
/foo from unsafe
34 test_unsafe ..
/dest from
/dir safe
36 test_unsafe .. from
/file safe
37 test_unsafe ..
/.. from
/file unsafe
38 test_unsafe dir
/.. from safe
39 test_unsafe dir
/..
/.. from unsafe
41 test_unsafe
'' from unsafe
43 # Based on tests from unsafe-links by VladimĂr Michl
44 test_unsafe ..
/..
/unsafe
/unsafefile from
/safe unsafe
45 test_unsafe ..
/files
/file1 from
/safe safe
47 test_unsafe ..
/..
/unsafe
/unsafefile safe unsafe
48 test_unsafe ..
/files
/file1 safe unsafe
50 test_unsafe ..
/..
/unsafe
/unsafefile
`pwd`/from
/safe safe
51 test_unsafe ..
/files
/file1
`pwd`/from
/safe safe