Skip to content

Commit 0a9e740

Browse files
jankarabrauner
authored andcommitted
isofs: Verify inode mode when loading from disk
Verify that the inode mode is sane when loading it from the disk to avoid complaints from VFS about setting up invalid inodes. Reported-by: [email protected] CC: [email protected] Signed-off-by: Jan Kara <[email protected]> Link: https://lore.kernel.org/[email protected] Acked-by: Christian Brauner <[email protected]> Signed-off-by: Christian Brauner <[email protected]>
1 parent 6b89819 commit 0a9e740

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

fs/isofs/inode.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1440,9 +1440,16 @@ static int isofs_read_inode(struct inode *inode, int relocated)
14401440
inode->i_op = &page_symlink_inode_operations;
14411441
inode_nohighmem(inode);
14421442
inode->i_data.a_ops = &isofs_symlink_aops;
1443-
} else
1443+
} else if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode) ||
1444+
S_ISFIFO(inode->i_mode) || S_ISSOCK(inode->i_mode)) {
14441445
/* XXX - parse_rock_ridge_inode() had already set i_rdev. */
14451446
init_special_inode(inode, inode->i_mode, inode->i_rdev);
1447+
} else {
1448+
printk(KERN_DEBUG "ISOFS: Invalid file type 0%04o for inode %lu.\n",
1449+
inode->i_mode, inode->i_ino);
1450+
ret = -EIO;
1451+
goto fail;
1452+
}
14461453

14471454
ret = 0;
14481455
out:

0 commit comments

Comments
 (0)