btrfs-progs/tests/convert-tests/018-fs-size-overflow/test.sh
Qu Wenruo 1c557766d2 btrfs-progs: tests: add convert test case for multiply overflow
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>
Signed-off-by: David Sterba <dsterba@suse.com>
2020-08-31 17:01:02 +02:00

20 lines
508 B
Bash
Executable File

#!/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 64g
check_prereq btrfs-convert
check_global_prereq mke2fs
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