2006-09-12 09:13:56

by Theodore Ts'o

[permalink] [raw]
Subject: Comments on respun 16T patches: group_desc_loops

On Wed, Aug 30, 2006 at 01:18:21PM -0500, Eric Sandeen wrote:
> http://people.redhat.com/esandeen/ext3/e2fsprogs-1.39-16T/e2fsprogs-hg-20060830-16T-patches.tar.gz

In the group_desc_loops patches in the above tarball:

>For loops iterating over all group descriptors, consistently define
>first_block and last_block in a way that they are inclusive of the
>range, and do not overflow.
>
>Previously on the last block group we did a test of <= first + dec_blocks;
>this would actually wrap back to 0 for a total block count of 2^32-1

As far as I can tell this is not a problem. sb->s_last_block can be
at most 2**32-1 --- which means that the last valid block number is
actually 2**32-2, since block numbers are zero based.

So as long as the handling of the last block group is correct, I don't
think we actually need to make the <= to < change. It's not wrong to
make the change, just not necessary as far as I can see.
Also, there are some files for which the only change was variable
names. That's fine, but the changelogs should state that.

So there is a last block group handling bug in ext2fs_check_desc(),
but I didn't see any other bugs that this patch would actually affect.
Am I missing anything?

Regards,

- Ted