浏览代码

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>
Richard Weinberger 10 年之前
父节点
当前提交
2ad2dca6fd
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      fs/hostfs/hostfs_kern.c

+ 4 - 2
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);
 		init_special_inode(ino, st.mode & S_IFMT, rdev);
 		ino->i_op = &hostfs_iops;
 		ino->i_op = &hostfs_iops;
 		break;
 		break;
-
-	default:
+	case S_IFREG:
 		ino->i_op = &hostfs_iops;
 		ino->i_op = &hostfs_iops;
 		ino->i_fop = &hostfs_file_fops;
 		ino->i_fop = &hostfs_file_fops;
 		ino->i_mapping->a_ops = &hostfs_aops;
 		ino->i_mapping->a_ops = &hostfs_aops;
+		break;
+	default:
+		return -EIO;
 	}
 	}
 
 
 	ino->i_ino = st.ino;
 	ino->i_ino = st.ino;