From 2d7361ebfae31d462027479fd32799e01b37ec19 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Sat, 18 Apr 2009 22:42:13 -0400 Subject: [PATCH] resize2fs: Fix corruption bug impacting ext4 filesystems with uninit_bg Due to a fencepost bug, when skipping a block group whose block bitmap was uninitialized (and hence could not contain any blocks eligible for relaocation), the block immediately following the block group wasn't checked as well. If it was in use and required relocation, it wouldn't get properly relocated, with the result that an inode using such a block would end up, post resize, with a pointer to a block now outside the bounds of the filesystem. This commit fixes this fencepost error. Signed-off-by: "Theodore Ts'o" --- resize/resize2fs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resize/resize2fs.c b/resize/resize2fs.c index ac926ce..f3e7fd0 100644 --- a/resize/resize2fs.c +++ b/resize/resize2fs.c @@ -804,7 +804,7 @@ static errcode_t blocks_to_move(ext2_resize_t rfs) * to the next block group. */ blk = ((g+1) * fs->super->s_blocks_per_group) + - fs->super->s_first_data_block; + fs->super->s_first_data_block - 1; continue; } if (ext2fs_test_block_bitmap(old_fs->block_map, blk) && -- 1.8.3.1