The patch titled hfs: fix oops on mount with corrupted btree extent records has been added to the -mm tree. Its filename is hfs-fix-oops-on-mount-with-corrupted-btree-extent-records.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: hfs: fix oops on mount with corrupted btree extent records From: Jeff Mahoney <jeffm@xxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx> Cc: Valdis Kletnieks <Valdis.Kletnieks@xxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- diff -puN fs/hfs/btree.c~hfs-fix-oops-on-mount-with-corrupted-btree-extent-records fs/hfs/btree.c --- a/fs/hfs/btree.c~hfs-fix-oops-on-mount-with-corrupted-btree-extent-records +++ a/fs/hfs/btree.c @@ -58,6 +58,11 @@ struct hfs_btree *hfs_btree_open(struct } unlock_new_inode(tree->inode); + if (!HFS_I(tree->inode)->first_blocks) { + printk(KERN_ERR "hfs: invalid btree extent records (0 size).\n"); + goto free_inode; + } + mapping = tree->inode->i_mapping; page = read_mapping_page(mapping, 0, NULL); if (IS_ERR(page)) _ Patches currently in -mm which might be from jeffm@xxxxxxxx are linux-next.patch hfs-fix-oops-on-mount-with-corrupted-btree-extent-records.patch reiserfs-remove-proc-fs-reiserfs-version.patch reiserfs-dont-compile-procfso-at-all-if-no-support.patch reiserfs-truncate-blocks-not-used-by-a-write-v2.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html