summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorDenys Vlasenko2011-03-01 17:21:07 +0100
committerDenys Vlasenko2011-03-01 17:21:07 +0100
commit5e29e263888284b2451debd9e5cb138b48fd293a (patch)
tree9971260e354b6385f53bfe57408bf4bff184a78f /testsuite
parent7d65abea092e917bc2320cbf1d5a2dccb2a8288f (diff)
downloadbusybox-5e29e263888284b2451debd9e5cb138b48fd293a.zip
busybox-5e29e263888284b2451debd9e5cb138b48fd293a.tar.gz
tar: on extract, everything up to and including last ".." is stripped
function old new delta get_header_tar 1493 1545 +52 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'testsuite')
-rwxr-xr-xtestsuite/tar.tests17
1 files changed, 17 insertions, 0 deletions
diff --git a/testsuite/tar.tests b/testsuite/tar.tests
index 472064f..d41d10d 100755
--- a/testsuite/tar.tests
+++ b/testsuite/tar.tests
@@ -168,6 +168,23 @@ Ok
" \
"" ""
+# On extract, everything up to and including last ".." component is stripped
+testing "tar strips /../ on extract" "\
+rm -rf input_* test.tar 2>/dev/null
+mkdir input_dir
+echo Ok >input_dir/file
+tar cf test.tar ./../tar.tempdir/input_dir/../input_dir 2>&1
+rm -rf input_* 2>/dev/null
+tar -vxf test.tar 2>&1
+cat input_dir/file 2>&1
+" "\
+tar: removing leading './../tar.tempdir/input_dir/../'
+input_dir/
+input_dir/file
+Ok
+" \
+"" ""
+
cd .. && rm -rf tar.tempdir || exit 1