2007-07-20 21:56:10

by Eric Sandeen

[permalink] [raw]
Subject: [PATCH e2fsprogs] fix test in ext2fs_check_desc() for inode table within block group

The test in ext2fs_check_desc() is off by one; if the inode table
goes all the way to the last block of the block group, it will
falsely assert that it has extended past it. The last block
of a range is start + len -1, not start + len.

Testcase to follow.

Signed-off-by: Eric Sandeen <[email protected]>

Index: e2fsprogs-1.40.2/lib/ext2fs/check_desc.c
===================================================================
--- e2fsprogs-1.40.2.orig/lib/ext2fs/check_desc.c
+++ e2fsprogs-1.40.2/lib/ext2fs/check_desc.c
@@ -61,7 +61,7 @@ errcode_t ext2fs_check_desc(ext2_filsys
*/
if (fs->group_desc[i].bg_inode_table < first_block ||
((fs->group_desc[i].bg_inode_table +
- fs->inode_blocks_per_group) > last_block))
+ fs->inode_blocks_per_group - 1) > last_block))
return EXT2_ET_GDESC_BAD_INODE_TABLE;
}
return 0;


2007-07-20 22:10:16

by Eric Sandeen

[permalink] [raw]
Subject: Re: [PATCH e2fsprogs] fix test in ext2fs_check_desc() for inode table within block group

Eric Sandeen wrote:
> The test in ext2fs_check_desc() is off by one; if the inode table
> goes all the way to the last block of the block group, it will
> falsely assert that it has extended past it. The last block
> of a range is start + len -1, not start + len.
>
(btw the kernel has this same problem, so it's not mountable either -
will send that patch Monday)

-Eric

2007-07-22 20:01:52

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH e2fsprogs] fix test in ext2fs_check_desc() for inode table within block group

On Fri, Jul 20, 2007 at 04:50:26PM -0500, Eric Sandeen wrote:
> The test in ext2fs_check_desc() is off by one; if the inode table
> goes all the way to the last block of the block group, it will
> falsely assert that it has extended past it. The last block
> of a range is start + len -1, not start + len.

Thanks, committed into git (combined with the test case) and updated
commit log to include the Red Hat Bugzilla number.

- Ted