diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2016-10-07 15:23:00 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-10-24 15:03:12 +0200 |
commit | 112514568fbe266943d7dd5ed3d2a6a8ab01a1de (patch) | |
tree | b1b801ec48896a267432deff3f120f69bcfa2354 | |
parent | 9119319ef99ffd742349f4b91aa8caab02d38fc9 (diff) |
btrfs-progs: test: Add image for quota verify stack overflow
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>
-rw-r--r-- | tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz | bin | 0 -> 55708 bytes | |||
-rwxr-xr-x | tests/fsck-tests/023-qgroup-stack-overflow/test.sh | 17 |
2 files changed, 17 insertions, 0 deletions
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 Binary files differnew file mode 100644 index 00000000..a0759739 --- /dev/null +++ b/tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz 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 index 00000000..e8bf3fae --- /dev/null +++ b/tests/fsck-tests/023-qgroup-stack-overflow/test.sh @@ -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 "." |