btrfs-progs: test: Add image for quota verify stack overflow
authorQu Wenruo <quwenruo@cn.fujitsu.com>
Fri, 7 Oct 2016 07:23:00 +0000 (15:23 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 24 Oct 2016 13:03:12 +0000 (15:03 +0200)
For image with tree reloc tree, if its height is over level 2, the root
node's backref will point to itself.  It's valid for kernel, but quota
verify code can't handle it and cause a infinite call, overflowing the
stack.

Add minimal image to reproduce the bug, as regression test.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
[ minor cleanups in test.sh ]
Signed-off-by: David Sterba <dsterba@suse.com>
tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz [new file with mode: 0644]
tests/fsck-tests/023-qgroup-stack-overflow/test.sh [new file with mode: 0755]

diff --git a/tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz b/tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz
new file mode 100644 (file)
index 0000000..a075973
Binary files /dev/null and b/tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz differ
diff --git a/tests/fsck-tests/023-qgroup-stack-overflow/test.sh b/tests/fsck-tests/023-qgroup-stack-overflow/test.sh
new file mode 100755 (executable)
index 0000000..e8bf3fa
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/bash
+#
+# Check whether btrfs check quota verify will cause stack overflow.
+# This is caused by lack of handling of tree reloc tree.
+# Fixed by patch:
+# btrfs-progs: Fix stack overflow for checking qgroup on tree reloc tree
+
+source $TOP/tests/common
+
+check_prereq btrfs
+
+check_image()
+{
+       run_check $TOP/btrfs check "$1"
+}
+
+check_all_images "."