qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [V3 PATCH 7/8] virtio-9p: Move file post creation chang


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [V3 PATCH 7/8] virtio-9p: Move file post creation changes to none security model
Date: Thu, 20 Jan 2011 08:59:54 +0000
User-agent: Mutt/1.5.20 (2009-06-14)

On Tue, Jan 18, 2011 at 01:54:16PM +0530, M. Mohan Kumar wrote:
> After creating a file object, its permission and ownership details are updated
> as per client's request for both passthrough and none security model. But with
> chrooted environment its not required for passthrough security model. Move all
> post file creation changes to none security model
> 
> Signed-off-by: M. Mohan Kumar <address@hidden>
> ---
>  hw/9pfs/virtio-9p-local.c |   19 ++++++-------------
>  1 files changed, 6 insertions(+), 13 deletions(-)
> 
> diff --git a/hw/9pfs/virtio-9p-local.c b/hw/9pfs/virtio-9p-local.c
> index 08fd67f..d2e32e2 100644
> --- a/hw/9pfs/virtio-9p-local.c
> +++ b/hw/9pfs/virtio-9p-local.c
> @@ -208,21 +208,14 @@ static int local_set_xattr(const char *path, FsCred 
> *credp)
>      return 0;
>  }
>  
> -static int local_post_create_passthrough(FsContext *fs_ctx, const char *path,
> +static int local_post_create_none(FsContext *fs_ctx, const char *path,
>          FsCred *credp)
>  {
> +    int retval;
>      if (chmod(rpath(fs_ctx, path), credp->fc_mode & 07777) < 0) {
>          return -1;
>      }
> -    if (lchown(rpath(fs_ctx, path), credp->fc_uid, credp->fc_gid) < 0) {
> -        /*
> -         * If we fail to change ownership and if we are
> -         * using security model none. Ignore the error
> -         */
> -        if (fs_ctx->fs_sm != SM_NONE) {
> -            return -1;
> -        }
> -    }
> +    retval = lchown(rpath(fs_ctx, path), credp->fc_uid, credp->fc_gid);
>      return 0;
>  }

retval is unused.

Can multiple virtio-9p requests execute at a time?  chmod() and lchown()
after creation is a race condition if other requests can execute
concurrently.

Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]