e2fsprogs/tests/f_corrupt_dirent_tail
Darrick J. Wong d3eb1502fd e2fsck: make insert_dirent_tail more robust
Fix the routine that adds dirent checksum structures to the directory
block to handle oddball situations a bit more robustly.

First, when we're walking the entry array, we might encounter an
entry that ends exactly one byte before where the checksum entry needs
to start, i.e. there's space for the tail entry, but it needs to be
reinitialized.  When that happens, we should proceed until d points to
that space so that the tail entry can be initialized.

Second, it's possible that we've been fed a directory block where the
entries end just short of the end of the block.  In this case, we need
to adjust the size of the last entry to point exactly to where the
dirent tail starts.  The current code requires that entries end
exactly on the block boundary, but this is not always the case with
damaged filesystems.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2014-07-27 19:46:15 -04:00
..
expect.1 e2fsck: make insert_dirent_tail more robust 2014-07-27 19:46:15 -04:00
expect.2 e2fsck: make insert_dirent_tail more robust 2014-07-27 19:46:15 -04:00
image.gz e2fsck: make insert_dirent_tail more robust 2014-07-27 19:46:15 -04:00
name e2fsck: make insert_dirent_tail more robust 2014-07-27 19:46:15 -04:00