X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/c81a32f071400c0edac42e00264718eec593e081..aa3faf5f8c2a05110bb1f39fd8d0742d5ca0431e:/testsuite/unsafe-byname.test diff --git a/testsuite/unsafe-byname.test b/testsuite/unsafe-byname.test index a4d24368..69b338f6 100644 --- a/testsuite/unsafe-byname.test +++ b/testsuite/unsafe-byname.test @@ -4,9 +4,14 @@ # Call directly into unsafe_symlink and test its handling of various filenames -. $srcdir/testsuite/rsync.fns +. "$suitedir/rsync.fns" test_unsafe() { + # $1 is the target of a symlink + # $2 is the directory we're copying + # $3 is the expected outcome: "safe" if the link lies within $2, + # or "unsafe" otherwise + result=`"$TOOLDIR/t_unsafe" "$1" "$2"` || test_fail "Failed to check $1 $2" if [ "$result" != "$3" ] then @@ -14,29 +19,41 @@ test_unsafe() { fi } -set -x - -test_unsafe file from safe -test_unsafe dir/file from safe -test_unsafe dir/./file from safe -test_unsafe dir/. from safe -test_unsafe dir/ from safe - -test_unsafe /etc/passwd from unsafe -test_unsafe //../etc/passwd from unsafe -test_unsafe //./etc/passwd from unsafe - -test_unsafe ./foo from safe -test_unsafe ../foo from unsafe -test_unsafe ../dest from/dir safe +test_unsafe file from safe +test_unsafe dir/file from safe +test_unsafe dir/./file from safe +test_unsafe dir/. from safe +test_unsafe dir/ from safe + +test_unsafe /etc/passwd from unsafe +test_unsafe //../etc/passwd from unsafe +test_unsafe //./etc/passwd from unsafe + +test_unsafe ./foo from safe +test_unsafe ../foo from unsafe +test_unsafe ./../foo from unsafe +test_unsafe .//../foo from unsafe +test_unsafe ./../foo from/.. unsafe +test_unsafe ../dest from/dir safe +test_unsafe ../../dest from//dir unsafe +test_unsafe ..//../dest from/dir unsafe + +test_unsafe .. from/file safe +test_unsafe ../.. from/file unsafe +test_unsafe ..//.. from//file unsafe +test_unsafe dir/.. from safe +test_unsafe dir/../.. from unsafe +test_unsafe dir/..//.. from unsafe + +test_unsafe '' from unsafe # Based on tests from unsafe-links by VladimĂ­r Michl -test_unsafe ../../unsafe/unsafefile from/safe unsafe -test_unsafe ../files/file1 from/safe safe - -test_unsafe ../../unsafe/unsafefile safe unsafe -test_unsafe ../files/file1 safe unsafe +test_unsafe ../../unsafe/unsafefile from/safe unsafe +test_unsafe ..//../unsafe/unsafefile from/safe unsafe +test_unsafe ../files/file1 from/safe safe -test_unsafe ../../unsafe/unsafefile `pwd`/from/safe safe -test_unsafe ../files/file1 `pwd`/from/safe safe +test_unsafe ../../unsafe/unsafefile safe unsafe +test_unsafe ../files/file1 safe unsafe +test_unsafe ../../unsafe/unsafefile `pwd`/from/safe safe +test_unsafe ../files/file1 `pwd`/from/safe safe