linux/fs/hfs
Jeff Mahoney 47f365eb57 hfs: fix oops on mount with corrupted btree extent records
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>
2009-10-29 07:39:29 -07:00
..
Kconfig fs/Kconfig: move hfs, hfsplus out 2009-01-22 13:15:57 +03:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
attr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bfind.c address hfs on-disk corruption robustness review comments 2008-02-06 10:41:05 -08:00
bitmap.c hfs: convert bitmap_lock in a mutex 2008-07-25 10:53:33 -07:00
bnode.c [PATCH] fs: Conversions from kmalloc+memset to k(z|c)alloc 2006-09-27 08:26:10 -07:00
brec.c hfs_bnode_find() can fail, resulting in hfs_bnode_split() breakage 2008-03-17 09:46:55 -07:00
btree.c hfs: fix oops on mount with corrupted btree extent records 2009-10-29 07:39:29 -07:00
btree.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
catalog.c hfs: fix namelength memory corruption 2008-10-16 11:21:46 -07:00
dir.c [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
extent.c hfs: convert extents_lock in a mutex 2008-07-25 10:53:33 -07:00
hfs.h address hfs on-disk corruption robustness review comments 2008-02-06 10:41:05 -08:00
hfs_fs.h constify dentry_operations: misc filesystems 2009-03-27 14:44:00 -04:00
inode.c hfs: fix memory leak when unmounting 2009-04-13 15:04:29 -07:00
mdb.c fs: Make unload_nls() NULL pointer safe 2009-09-24 07:47:42 -04:00
part_tbl.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
string.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
super.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
sysdep.c constify dentry_operations: misc filesystems 2009-03-27 14:44:00 -04:00
trans.c [PATCH] hfs: NLS support 2005-09-07 16:57:50 -07:00