[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 02/29] 9pfs: remove side-effects in local_init()
From: |
Greg Kurz |
Subject: |
[Qemu-devel] [PATCH 02/29] 9pfs: remove side-effects in local_init() |
Date: |
Mon, 20 Feb 2017 15:39:34 +0100 |
User-agent: |
StGit/0.17.1-20-gc0b1b-dirty |
If this function fails, it should not modify *ctx.
Signed-off-by: Greg Kurz <address@hidden>
---
hw/9pfs/9p-local.c | 37 +++++++++++++++++++------------------
1 file changed, 19 insertions(+), 18 deletions(-)
diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
index 7de07e1ba67f..55903e5d7745 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
@@ -1168,9 +1168,25 @@ static int local_ioc_getversion(FsContext *ctx, V9fsPath
*path,
static int local_init(FsContext *ctx)
{
- int err = 0;
struct statfs stbuf;
+#ifdef FS_IOC_GETVERSION
+ /*
+ * use ioc_getversion only if the iocl is definied
+ */
+ if (statfs(ctx->fs_root, &stbuf) < 0) {
+ return -1;
+ }
+ switch (stbuf.f_type) {
+ case EXT2_SUPER_MAGIC:
+ case BTRFS_SUPER_MAGIC:
+ case REISERFS_SUPER_MAGIC:
+ case XFS_SUPER_MAGIC:
+ ctx->exops.get_st_gen = local_ioc_getversion;
+ break;
+ }
+#endif
+
if (ctx->export_flags & V9FS_SM_PASSTHROUGH) {
ctx->xops = passthrough_xattr_ops;
} else if (ctx->export_flags & V9FS_SM_MAPPED) {
@@ -1185,23 +1201,8 @@ static int local_init(FsContext *ctx)
ctx->xops = passthrough_xattr_ops;
}
ctx->export_flags |= V9FS_PATHNAME_FSCONTEXT;
-#ifdef FS_IOC_GETVERSION
- /*
- * use ioc_getversion only if the iocl is definied
- */
- err = statfs(ctx->fs_root, &stbuf);
- if (!err) {
- switch (stbuf.f_type) {
- case EXT2_SUPER_MAGIC:
- case BTRFS_SUPER_MAGIC:
- case REISERFS_SUPER_MAGIC:
- case XFS_SUPER_MAGIC:
- ctx->exops.get_st_gen = local_ioc_getversion;
- break;
- }
- }
-#endif
- return err;
+
+ return 0;
}
static int local_parse_opts(QemuOpts *opts, struct FsDriverEntry *fse)
- [Qemu-devel] [PATCH 00/29] 9pfs: local: fix vulnerability to symlink attacks, Greg Kurz, 2017/02/20
- [Qemu-devel] [PATCH 01/29] 9pfs: local: move xattr security ops to 9p-xattr.c, Greg Kurz, 2017/02/20
- [Qemu-devel] [PATCH 02/29] 9pfs: remove side-effects in local_init(),
Greg Kurz <=
- [Qemu-devel] [PATCH 03/29] 9pfs: remove side-effects in local_open() and local_opendir(), Greg Kurz, 2017/02/20
- [Qemu-devel] [PATCH 04/29] 9pfs: introduce openat_nofollow() helper, Greg Kurz, 2017/02/20
- Re: [Qemu-devel] [PATCH 04/29] 9pfs: introduce openat_nofollow() helper, Stefan Hajnoczi, 2017/02/23
- Re: [Qemu-devel] [PATCH 04/29] 9pfs: introduce openat_nofollow() helper, Greg Kurz, 2017/02/23
- Re: [Qemu-devel] [PATCH 04/29] 9pfs: introduce openat_nofollow() helper, Stefan Hajnoczi, 2017/02/24
- Re: [Qemu-devel] [PATCH 04/29] 9pfs: introduce openat_nofollow() helper, Greg Kurz, 2017/02/24
- Re: [Qemu-devel] [PATCH 04/29] 9pfs: introduce openat_nofollow() helper, Stefan Hajnoczi, 2017/02/27
- Re: [Qemu-devel] [PATCH 04/29] 9pfs: introduce openat_nofollow() helper, Greg Kurz, 2017/02/27