From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH 2/2] btrfs-progs: convert-tests: Add test case for multiply overflow
Date: Mon, 20 Jul 2020 20:51:09 +0800 [thread overview]
Message-ID: <20200720125109.93970-2-wqu@suse.com> (raw)
In-Reply-To: <20200720125109.93970-1-wqu@suse.com>
The new test case will test whether btrfs-convert can handle 64G ext*
fs.
This exercise the cctx->total_bytes calculation where multiplying 4K
(unsigned int) and 16777216 (u32) could lead to bit overflow for
unsigned int and got 0, and screw up later free space calculation.
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
.../018-fs-size-overflow/test.sh | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100755 tests/convert-tests/018-fs-size-overflow/test.sh
diff --git a/tests/convert-tests/018-fs-size-overflow/test.sh b/tests/convert-tests/018-fs-size-overflow/test.sh
new file mode 100755
index 000000000000..2335225445f8
--- /dev/null
+++ b/tests/convert-tests/018-fs-size-overflow/test.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+# Check if btrfs-convert can handle an ext4 fs whose size is 64G.
+# That fs size could trigger a multiply overflow and screw up free space
+# calculation
+
+source "$TEST_TOP/common"
+source "$TEST_TOP/common.convert"
+
+setup_root_helper
+prepare_test_dev
+check_prereq btrfs-convert
+check_global_prereq mke2fs
+check_global_prereq truncate
+
+truncate -s 64g $TEST_DEV
+
+convert_test_prep_fs ext4 mke2fs -t ext4 -b 4096
+run_check_umount_test_dev
+
+# Unpatched btrfs-convert would fail half way due to corrupted free space
+# cache tree
+convert_test_do_convert
--
2.27.0
next prev parent reply other threads:[~2020-07-20 12:51 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-20 12:51 [PATCH 1/2] btrfs-progs: convert: Prevent bit overflow for cctx->total_bytes Qu Wenruo
2020-07-20 12:51 ` Qu Wenruo [this message]
2020-07-20 12:53 ` Nikolay Borisov
2020-07-20 16:09 ` David Sterba
2020-07-20 23:51 ` Qu Wenruo
2020-07-21 9:58 ` David Sterba
2020-07-21 10:29 ` Qu Wenruo
2020-07-21 13:55 ` David Sterba
2020-07-21 22:58 ` Qu Wenruo
2020-07-22 11:32 ` David Sterba
2020-07-23 13:31 ` Neal Gompa
2020-07-24 0:01 ` Qu Wenruo
2020-07-28 13:14 ` Neal Gompa
2020-07-28 13:19 ` Qu Wenruo
2020-07-29 1:56 ` Neal Gompa
2020-07-29 2:30 ` Qu Wenruo
2020-07-21 13:57 ` Stefan Traby
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200720125109.93970-2-wqu@suse.com \
--to=wqu@suse.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox