Skip to content

Commit 23f12d1

Browse files
Tetsuo Handagregkh
authored andcommitted
minixfs: Verify inode mode when loading from disk
[ Upstream commit 73861970938ad1323eb02bbbc87f6fbd1e5bacca ] The inode mode loaded from corrupted disk can be invalid. Do like what commit 0a9e740 ("isofs: Verify inode mode when loading from disk") does. Reported-by: syzbot <[email protected]> Closes: https://syzkaller.appspot.com/bug?extid=895c23f6917da440ed0d Signed-off-by: Tetsuo Handa <[email protected]> Link: https://lore.kernel.org/[email protected] Signed-off-by: Christian Brauner <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
1 parent 03dec28 commit 23f12d1

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

fs/minix/inode.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,8 +492,14 @@ void minix_set_inode(struct inode *inode, dev_t rdev)
492492
inode->i_op = &minix_symlink_inode_operations;
493493
inode_nohighmem(inode);
494494
inode->i_mapping->a_ops = &minix_aops;
495-
} else
495+
} else if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode) ||
496+
S_ISFIFO(inode->i_mode) || S_ISSOCK(inode->i_mode)) {
496497
init_special_inode(inode, inode->i_mode, rdev);
498+
} else {
499+
printk(KERN_DEBUG "MINIX-fs: Invalid file type 0%04o for inode %lu.\n",
500+
inode->i_mode, inode->i_ino);
501+
make_bad_inode(inode);
502+
}
497503
}
498504

499505
/*

0 commit comments

Comments
 (0)