aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2015-03-01 18:10:25 -0500
committerRichard Weinberger <richard@nod.at>2015-03-26 18:27:49 -0400
commit2ad2dca6fd28cf24ed64110a8b374fc838838c81 (patch)
treee049cd5d7583f33368496c0f8f145f4b162d7c21 /fs
parent4c6dcafc691bbd1e3258b623121d8859d3213ae9 (diff)
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')
-rw-r--r--fs/hostfs/hostfs_kern.c6
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)
534 init_special_inode(ino, st.mode & S_IFMT, rdev); 534 init_special_inode(ino, st.mode & S_IFMT, rdev);
535 ino->i_op = &hostfs_iops; 535 ino->i_op = &hostfs_iops;
536 break; 536 break;
537 537 case S_IFREG:
538 default:
539 ino->i_op = &hostfs_iops; 538 ino->i_op = &hostfs_iops;
540 ino->i_fop = &hostfs_file_fops; 539 ino->i_fop = &hostfs_file_fops;
541 ino->i_mapping->a_ops = &hostfs_aops; 540 ino->i_mapping->a_ops = &hostfs_aops;
541 break;
542 default:
543 return -EIO;
542 } 544 }
543 545
544 ino->i_ino = st.ino; 546 ino->i_ino = st.ino;