mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-11-23 18:14:25 +08:00
d3eb1502fd
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> |
||
---|---|---|
.. | ||
expect.1 | ||
expect.2 | ||
image.gz | ||
name |