From: Richard Weinberger Date: Sun, 1 Mar 2015 23:10:25 +0000 (+0100) Subject: hostfs: Handle bogus st.mode X-Git-Tag: firefly_0821_release~176^2~1967^2~22 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2ad2dca6fd28cf24ed64110a8b374fc838838c81;p=firefly-linux-kernel-4.4.55.git hostfs: Handle bogus st.mode Make sure that we return EIO if one passes an invalid st.mode into hostfs. Signed-off-by: Richard Weinberger --- diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index 92b008f564a4..8163aac81c21 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c @@ -534,11 +534,13 @@ static int read_name(struct inode *ino, char *name) init_special_inode(ino, st.mode & S_IFMT, rdev); ino->i_op = &hostfs_iops; break; - - default: + case S_IFREG: ino->i_op = &hostfs_iops; ino->i_fop = &hostfs_file_fops; ino->i_mapping->a_ops = &hostfs_aops; + break; + default: + return -EIO; } ino->i_ino = st.ino;