A particular fsfuzzer run caused an hfs file system to crash on mount. This is due to a corrupted MDB extent record causing a miscalculation of HFS_I(inode)->first_blocks for the extent tree. If the extent records are zereod out, it won't trigger the first_blocks special case. Instead it falls through to the extent code which we're still in the middle of initializing. This patch catches the 0 size extent records, reports the corruption, and fails the mount. Reported-by: Ramon de Carvalho Valle <rcvalle@linux.vnet.ibm.com> Signed-off-by: Jeff Mahoney <jeffm@suse.com> Cc: Valdis Kletnieks <Valdis.Kletnieks@vt.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
attr.c | ||
bfind.c | ||
bitmap.c | ||
bnode.c | ||
brec.c | ||
btree.c | ||
btree.h | ||
catalog.c | ||
dir.c | ||
extent.c | ||
hfs.h | ||
hfs_fs.h | ||
inode.c | ||
mdb.c | ||
part_tbl.c | ||
string.c | ||
super.c | ||
sysdep.c | ||
trans.c |