[Virtio-fs] [PATCH][virtio-fs-dev] virtiofsd: Fix fuse_reply_create() to determine correct length of buffer

Dr. David Alan Gilbert dgilbert at redhat.com
Mon Jul 8 18:42:39 UTC 2019


* Vivek Goyal (vgoyal at redhat.com) wrote:
> Hi Dave,
> 
> Following patch needs to be applied on virtio-fs-dev branch to make it
> work with latest kernel. Otherwise file creation reply returns error.
> 
> Thanks
> Vivek
> 
> Put conditional express in brackets. Otherwise expression being evaluated
> becomes (entrysize + sizeof(struct fuse_open_out) + shared) instead and
> which obviously results in wrong size calculation.
> 
> Signed-off-by: Vivek Goyal <vgoyal at redhat.com>

Ouch, that's a nasty one to find; thanks!

Reviewed-by: Dr. David Alan Gilbert <dgilbert at redhat.com>

> ---
>  contrib/virtiofsd/fuse_lowlevel.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> Index: qemu/contrib/virtiofsd/fuse_lowlevel.c
> ===================================================================
> --- qemu.orig/contrib/virtiofsd/fuse_lowlevel.c	2019-07-01 13:22:55.489623969 -0400
> +++ qemu/contrib/virtiofsd/fuse_lowlevel.c	2019-07-01 13:23:56.338143585 -0400
> @@ -413,7 +413,7 @@ int fuse_reply_create(fuse_req_t req, co
>  	ever->version_index = e->version_offset;
>  	return send_reply_ok(req, buf,
>  			     entrysize + sizeof(struct fuse_open_out) +
> -                             shared ? sizeof(struct fuse_entryver_out) : 0);
> +                             (shared ? sizeof(struct fuse_entryver_out) : 0));
>  }
>  
>  int fuse_reply_attr(fuse_req_t req, const struct stat *attr,
--
Dr. David Alan Gilbert / dgilbert at redhat.com / Manchester, UK




More information about the Virtio-fs mailing list