]> git.baikalelectronics.ru Git - kernel.git/commit
hfsplus: fix oops on mount with corrupted btree extent records
authorJeff Mahoney <jeffm@suse.com>
Thu, 14 Oct 2010 13:53:37 +0000 (09:53 -0400)
committerChristoph Hellwig <hch@lst.de>
Thu, 14 Oct 2010 13:53:37 +0000 (09:53 -0400)
commit1560ef3869619926c34bf08eb5c68177cec5dd54
tree3d85d8fce3bde7b1601878074cdec622705d1af2
parent8250de5be8be57cb2647a51098d21ae322df84af
hfsplus: 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
HFSPLUS_I(inode)->first_blocks for the extent tree. If the extent records
are zereod out, then it won't trigger the first_blocks special case and
instead falls through to the extent code, which we're in the middle
of initializing.

This patch catches the 0 size extent records, reports the corruption,
and fails the mount.

[hch: ported of commit 7c0848c87438180790e617b4fbb664b79e7cfce9 from hfs]

Reported-by: Ramon de Carvalho Valle <rcvalle@linux.vnet.ibm.com>
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Christoph Hellwig <hch@tuxera.com>
fs/hfsplus/btree.c