diff options
author | Theodore Ts'o <tytso@mit.edu> | 2008-06-17 00:18:58 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-06-17 01:14:30 -0400 |
commit | bc507e31ad8a890232dc2b3aec9ee9d68e95622a (patch) | |
tree | 81a065cfb1c7abd2a4e7f0cfe61b78a680aeb232 /lib/ext2fs/mkjournal.c | |
parent | 74128f8d7e93fe633aa87951319a4afd252a4494 (diff) | |
download | e2fsprogs-bc507e31ad8a890232dc2b3aec9ee9d68e95622a.tar.gz |
ext2fs_zero_blocks: Avoid clearing more blocks than requested
This could cause certain mke2fs feature combinations to result in the
initial blocks of the inode table getting wiped out when the journal
is created.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'lib/ext2fs/mkjournal.c')
-rw-r--r-- | lib/ext2fs/mkjournal.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/ext2fs/mkjournal.c b/lib/ext2fs/mkjournal.c index ca8e733b..e55dcbda 100644 --- a/lib/ext2fs/mkjournal.c +++ b/lib/ext2fs/mkjournal.c @@ -170,9 +170,11 @@ errcode_t ext2fs_zero_blocks(ext2_filsys fs, blk_t blk, int num, /* OK, do the write loop */ j=0; while (j < num) { - if (blk % STRIDE_LENGTH) + if (blk % STRIDE_LENGTH) { count = STRIDE_LENGTH - (blk % STRIDE_LENGTH); - else { + if (count > (num - j)) + count = num - j; + } else { count = num - j; if (count > STRIDE_LENGTH) count = STRIDE_LENGTH; |