summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2012-11-04 12:21:47 +0100
committerAndreas Gohr <andi@splitbrain.org>2012-11-04 12:21:47 +0100
commit2949ece61602372cf55fba6be4522fa8899fb70d (patch)
treea2ebed10103afbaa1b323b563061b13267b0d484
parent90a1db709d3590e849a5a4966fbdf8fb58ae75cd (diff)
downloadrpg-2949ece61602372cf55fba6be4522fa8899fb70d.tar.gz
rpg-2949ece61602372cf55fba6be4522fa8899fb70d.tar.bz2
unit test for tar bombs
-rw-r--r--_test/tests/inc/tar.test.php18
-rw-r--r--_test/tests/inc/tar/tarbomb.tgzbin0 -> 183 bytes
2 files changed, 18 insertions, 0 deletions
diff --git a/_test/tests/inc/tar.test.php b/_test/tests/inc/tar.test.php
index 47851fd4c..e8805a75d 100644
--- a/_test/tests/inc/tar.test.php
+++ b/_test/tests/inc/tar.test.php
@@ -298,4 +298,22 @@ class Tar_TestCase extends DokuWikiTest {
@unlink($tmp);
}
+ /**
+ * Extract a tarbomomb
+ */
+ public function test_tarbomb() {
+ $dir = dirname(__FILE__).'/tar';
+ $out = sys_get_temp_dir().'/dwtartest'.md5(time());
+
+ $tar = new Tar();
+
+ $tar->open("$dir/tarbomb.tgz");
+ $tar->extract($out);
+
+ clearstatcache();
+
+ $this->assertFileExists($out.'/AAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB.txt');
+
+ TestUtils::rdelete($out);
+ }
} \ No newline at end of file
diff --git a/_test/tests/inc/tar/tarbomb.tgz b/_test/tests/inc/tar/tarbomb.tgz
new file mode 100644
index 000000000..8418d4073
--- /dev/null
+++ b/_test/tests/inc/tar/tarbomb.tgz
Binary files differ