diff options
author | Richard Weinberger <richard@nod.at> | 2015-03-02 00:10:25 +0100 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2015-03-26 23:27:49 +0100 |
commit | 2ad2dca6fd28cf24ed64110a8b374fc838838c81 (patch) | |
tree | e049cd5d7583f33368496c0f8f145f4b162d7c21 /fs/hostfs | |
parent | 4c6dcafc691bbd1e3258b623121d8859d3213ae9 (diff) | |
download | linux-2ad2dca6fd28cf24ed64110a8b374fc838838c81.tar.gz linux-2ad2dca6fd28cf24ed64110a8b374fc838838c81.tar.bz2 linux-2ad2dca6fd28cf24ed64110a8b374fc838838c81.zip |
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 <richard@nod.at>
Diffstat (limited to 'fs/hostfs')
-rw-r--r-- | fs/hostfs/hostfs_kern.c | 6 |
1 files changed, 4 insertions, 2 deletions
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; |