aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2021-08-14 12:37:02 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2021-08-14 15:12:24 +0200
commit1deb54c95d508f9adce1dddb073f0b0e4f8e7ba1 (patch)
tree5f257a566f89701641a030d7b2eb3604c3d7cfc9
parentad109e2b119cb3ed27c7d964be9625d415447eb1 (diff)
Add a test case for the path traversal bug
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-rw-r--r--.gitignore1
-rw-r--r--configure.ac2
-rw-r--r--tests/Makemodule.am7
-rw-r--r--tests/rdsquashfs/pathtraversal.sh.in12
-rw-r--r--tests/rdsquashfs/pathtraversal.sqfsbin0 -> 4096 bytes
5 files changed, 22 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index df055d5..a6f0c10 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,6 +42,7 @@ m4/libtool.m4
m4/lt*.m4
Doxyfile
tests/*.sh
+tests/rdsquashfs/*.sh
/mknastyfs
/mk42sqfs
/extract_one
diff --git a/configure.ac b/configure.ac
index e79d671..2d45daa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -299,6 +299,8 @@ AC_CONFIG_FILES([tests/cantrbry.sh], [chmod +x tests/cantrbry.sh])
AC_CONFIG_FILES([tests/test_tar_sqfs.sh], [chmod +x tests/test_tar_sqfs.sh])
AC_CONFIG_FILES([tests/pack_dir_root.sh], [chmod +x tests/pack_dir_root.sh])
AC_CONFIG_FILES([tests/tarcompress.sh], [chmod +x tests/tarcompress.sh])
+AC_CONFIG_FILES([tests/rdsquashfs/pathtraversal.sh],
+ [chmod +x tests/rdsquashfs/pathtraversal.sh])
AC_OUTPUT([Makefile])
diff --git a/tests/Makemodule.am b/tests/Makemodule.am
index 8669fb1..3165889 100644
--- a/tests/Makemodule.am
+++ b/tests/Makemodule.am
@@ -11,7 +11,14 @@ TESTS += tests/cantrbry.sh tests/test_tar_sqfs.sh tests/pack_dir_root.sh
endif
endif
+if WINDOWS
+else
+check_SCRIPTS += tests/rdsquashfs/pathtraversal.sh
+TESTS += tests/rdsquashfs/pathtraversal.sh
+endif
+
EXTRA_DIST += $(top_srcdir)/tests/tar2sqfs
EXTRA_DIST += $(top_srcdir)/tests/corpus/cantrbry.tar.xz
EXTRA_DIST += $(top_srcdir)/tests/corpus/cantrbry.sha512
EXTRA_DIST += $(top_srcdir)/tests/pack_dir_root.txt.ref
+EXTRA_DIST += $(top_srcdir)/tests/rdsquashfs/pathtraversal.sqfs
diff --git a/tests/rdsquashfs/pathtraversal.sh.in b/tests/rdsquashfs/pathtraversal.sh.in
new file mode 100644
index 0000000..6dd9fab
--- /dev/null
+++ b/tests/rdsquashfs/pathtraversal.sh.in
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+RDSQFS="@abs_top_builddir@/rdsquashfs"
+REFFILE="@abs_top_srcdir@/tests/rdsquashfs/pathtraversal.sqfs"
+GOTCHA="/tmp/gotcha.txt"
+
+if "$RDSQFS" -u / -p . "$REFFILE"; then
+ if [ -e "$GOTCHA" ]; then
+ echo "Found $GOTCHA which should not be there"
+ exit 1
+ fi
+fi
diff --git a/tests/rdsquashfs/pathtraversal.sqfs b/tests/rdsquashfs/pathtraversal.sqfs
new file mode 100644
index 0000000..0c33bb3
--- /dev/null
+++ b/tests/rdsquashfs/pathtraversal.sqfs
Binary files differ