Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

cramfs: Verify inode mode when loading from disk

The inode mode loaded from corrupted disk can be invalid. Do like what
commit 0a9e74051313 ("isofs: Verify inode mode when loading from disk")
does.

Reported-by: syzbot <syzbot+895c23f6917da440ed0d@syzkaller.appspotmail.com>
Closes: https://syzkaller.appspot.com/bug?extid=895c23f6917da440ed0d
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Link: https://lore.kernel.org/429b3ef1-13de-4310-9a8e-c2dc9a36234a@I-love.SAKURA.ne.jp
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Christian Brauner <brauner@kernel.org>

authored by

Tetsuo Handa and committed by
Christian Brauner
7f9d34b0 e5bca063

+10 -1
+10 -1
fs/cramfs/inode.c
··· 116 116 inode_nohighmem(inode); 117 117 inode->i_data.a_ops = &cramfs_aops; 118 118 break; 119 - default: 119 + case S_IFCHR: 120 + case S_IFBLK: 121 + case S_IFIFO: 122 + case S_IFSOCK: 120 123 init_special_inode(inode, cramfs_inode->mode, 121 124 old_decode_dev(cramfs_inode->size)); 125 + break; 126 + default: 127 + printk(KERN_DEBUG "CRAMFS: Invalid file type 0%04o for inode %lu.\n", 128 + inode->i_mode, inode->i_ino); 129 + iget_failed(inode); 130 + return ERR_PTR(-EIO); 122 131 } 123 132 124 133 inode->i_mode = cramfs_inode->mode;