Skip to content

Commit 8a294fb

Browse files
Tetsuo Handagregkh
authored andcommitted
minixfs: Verify inode mode when loading from disk
[ Upstream commit 7386197 ] 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 415d512 commit 8a294fb

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

fs/minix/inode.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,8 +470,14 @@ void minix_set_inode(struct inode *inode, dev_t rdev)
470470
inode->i_op = &minix_symlink_inode_operations;
471471
inode_nohighmem(inode);
472472
inode->i_mapping->a_ops = &minix_aops;
473-
} else
473+
} else if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode) ||
474+
S_ISFIFO(inode->i_mode) || S_ISSOCK(inode->i_mode)) {
474475
init_special_inode(inode, inode->i_mode, rdev);
476+
} else {
477+
printk(KERN_DEBUG "MINIX-fs: Invalid file type 0%04o for inode %lu.\n",
478+
inode->i_mode, inode->i_ino);
479+
make_bad_inode(inode);
480+
}
475481
}
476482

477483
/*

0 commit comments

Comments
 (0)