mirror of https://github.com/vitalif/e2fsprogs
Fix fencepost error in resize2fs caught by valgrind
There was a off-by-one fencepost error in the logic used to check if we avoid copying zero-filled blocks when moving an inode table down by a block or two. Thanks to valgrind for catching it. As far as I know this fencepost error wasn't causing any actual problems, but it was definitely a bug. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>bitmap-optimize
parent
b28a6e96af
commit
2787276ec5
|
@ -1,3 +1,12 @@
|
||||||
|
2005-08-08 Theodore Ts'o <tytso@mit.edu>
|
||||||
|
|
||||||
|
* resize2fs.c (move_itables): Fix fencepost error caught by valgrind.
|
||||||
|
(adjust_superblock): Clear the newly allocated descriptor
|
||||||
|
blocks when we allocate them to avoid false positives from
|
||||||
|
valgrind (and so that the unusued descriptors at the tail
|
||||||
|
end of the newly allocated descriptor blocks are zero'ed
|
||||||
|
out, include of random garbage).
|
||||||
|
|
||||||
2006-06-30 Theodore Ts'o <tytso@mit.edu>
|
2006-06-30 Theodore Ts'o <tytso@mit.edu>
|
||||||
|
|
||||||
* Release of E2fsprogs 1.38
|
* Release of E2fsprogs 1.38
|
||||||
|
|
|
@ -281,6 +281,11 @@ retry:
|
||||||
&fs->group_desc);
|
&fs->group_desc);
|
||||||
if (retval)
|
if (retval)
|
||||||
goto errout;
|
goto errout;
|
||||||
|
if (fs->desc_blocks > rfs->old_fs->desc_blocks)
|
||||||
|
memset((char *) fs->group_desc +
|
||||||
|
(rfs->old_fs->desc_blocks * fs->blocksize), 0,
|
||||||
|
(fs->desc_blocks - rfs->old_fs->desc_blocks) *
|
||||||
|
fs->blocksize);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1379,7 +1384,7 @@ static errcode_t move_itables(ext2_resize_t rfs)
|
||||||
* things by not rewriting blocks that we know to be zero
|
* things by not rewriting blocks that we know to be zero
|
||||||
* already.
|
* already.
|
||||||
*/
|
*/
|
||||||
for (cp = rfs->itable_buf+size, n=0; n < size; n++, cp--)
|
for (cp = rfs->itable_buf+size-1, n=0; n < size; n++, cp--)
|
||||||
if (*cp)
|
if (*cp)
|
||||||
break;
|
break;
|
||||||
n = n >> EXT2_BLOCK_SIZE_BITS(fs->super);
|
n = n >> EXT2_BLOCK_SIZE_BITS(fs->super);
|
||||||
|
|
Loading…
Reference in New Issue