diff mbox

[2/2] btrfs-progs: fsck-test: Add image for quota verify stack overflow

Message ID 20161007072300.3367-2-quwenruo@cn.fujitsu.com (mailing list archive)
State Accepted
Headers show

Commit Message

Qu Wenruo Oct. 7, 2016, 7:23 a.m. UTC
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>
---
 .../quota_balance_loop_backref.raw.xz                | Bin 0 -> 71116 bytes
 tests/fsck-tests/023-qgroup-stack-overflow/test.sh   |  19 +++++++++++++++++++
 2 files changed, 19 insertions(+)
 create mode 100644 tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz
 create mode 100644 tests/fsck-tests/023-qgroup-stack-overflow/test.sh

Comments

David Sterba Oct. 13, 2016, 2:29 p.m. UTC | #1
On Fri, Oct 07, 2016 at 03:23:00PM +0800, Qu Wenruo wrote:
> +for img in $(find . \( -iname '*.img' -o	\
> +			-iname '*.img.xz' -o 	\
> +			-iname '*.raw' -o 	\
> +			-iname '*.raw.xz' \) | sort)
> +do
> +	image=$(extract_image $img)
> +	run_check $TOP/btrfs check "$image"
> +	rm -f "$image"
> +done

There's a helper that enumerates images and calls 'check_image' on each,
so you should redefine 'check_image' if you don't want to do the default
actions (check, repair and check). Fixed in devel.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Qu Wenruo Oct. 14, 2016, 1:33 a.m. UTC | #2
At 10/13/2016 10:29 PM, David Sterba wrote:
> On Fri, Oct 07, 2016 at 03:23:00PM +0800, Qu Wenruo wrote:
>> +for img in $(find . \( -iname '*.img' -o	\
>> +			-iname '*.img.xz' -o 	\
>> +			-iname '*.raw' -o 	\
>> +			-iname '*.raw.xz' \) | sort)
>> +do
>> +	image=$(extract_image $img)
>> +	run_check $TOP/btrfs check "$image"
>> +	rm -f "$image"
>> +done
>
> There's a helper that enumerates images and calls 'check_image' on each,
> so you should redefine 'check_image' if you don't want to do the default
> actions (check, repair and check). Fixed in devel.
>
>
Oh, thanks for this hint! I checked the commit in devel branch, and 
found that we could just override check_image() function.

Brilliant idea!

Thanks,
Qu


--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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
index 0000000000000000000000000000000000000000..48a89ad8fed72766a6cb7720025f60ed0e88ea7a
GIT binary patch
literal 71116
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
Lu>HAE+gkqv$P}|k

literal 0
HcmV?d00001

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 100644
index 0000000..f49518e
--- /dev/null
+++ b/tests/fsck-tests/023-qgroup-stack-overflow/test.sh
@@ -0,0 +1,19 @@ 
+#!/bin/bash
+# check whether btrfsck quota verify will cause stack overflow.
+# this is caused by lack of handle for 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
+
+for img in $(find . \( -iname '*.img' -o	\
+			-iname '*.img.xz' -o 	\
+			-iname '*.raw' -o 	\
+			-iname '*.raw.xz' \) | sort)
+do
+	image=$(extract_image $img)
+	run_check $TOP/btrfs check "$image"
+	rm -f "$image"
+done