From: Stefan Hajnoczi <stefanha@redhat.com> To: "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com> Cc: virtio-fs@redhat.com, marcandre.lureau@redhat.com, qemu-devel@nongnu.org, vgoyal@redhat.com, mst@redhat.com Subject: Re: [PATCH 08/24] DAX: virtio-fs: Fill in slave commands for mapping Date: Thu, 11 Feb 2021 10:57:55 +0000 [thread overview] Message-ID: <20210211105755.GI247031@stefanha-x1.localdomain> (raw) In-Reply-To: <20210209190224.62827-9-dgilbert@redhat.com> [-- Attachment #1: Type: text/plain, Size: 2023 bytes --] On Tue, Feb 09, 2021 at 07:02:08PM +0000, Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > Fill in definitions for map, unmap and sync commands. > > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > with fix by misono.tomohiro@fujitsu.com > --- > hw/virtio/vhost-user-fs.c | 115 ++++++++++++++++++++++++++++++++++++-- > 1 file changed, 111 insertions(+), 4 deletions(-) > > diff --git a/hw/virtio/vhost-user-fs.c b/hw/virtio/vhost-user-fs.c > index 78401d2ff1..5f2fca4d82 100644 > --- a/hw/virtio/vhost-user-fs.c > +++ b/hw/virtio/vhost-user-fs.c > @@ -37,15 +37,122 @@ > uint64_t vhost_user_fs_slave_map(struct vhost_dev *dev, VhostUserFSSlaveMsg *sm, > int fd) > { > - /* TODO */ > - return (uint64_t)-1; > + VHostUserFS *fs = VHOST_USER_FS(dev->vdev); > + if (!fs) { > + /* Shouldn't happen - but seen on error path */ > + error_report("Bad fs ptr"); > + return (uint64_t)-1; > + } If a non-vhost-user-fs vhost-user device backend sends this message VHOST_USER_FS() -> object_dynamic_cast_assert() there will either be an assertion failure (CONFIG_QOM_CAST_DEBUG) or the pointer will be silently cast to the wrong type (!CONFIG_QOM_CAST_DEBUG). Both of these outcomes are not suitable for input validation. We need to fail cleanly here: VhostUserFS *fs = (VHostUserFS *)object_dynamic_cast(OBJECT(dev->vdev), TYPE_VHOST_USER_FS); if (!fs) { ...handle failure... } > uint64_t vhost_user_fs_slave_unmap(struct vhost_dev *dev, > VhostUserFSSlaveMsg *sm) > { > - /* TODO */ > - return (uint64_t)-1; > + VHostUserFS *fs = VHOST_USER_FS(dev->vdev); > + if (!fs) { > + /* Shouldn't happen - but seen on error path */ > + error_report("Bad fs ptr"); > + return (uint64_t)-1; > + } Same here. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Stefan Hajnoczi <stefanha@redhat.com> To: "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com> Cc: virtio-fs@redhat.com, marcandre.lureau@redhat.com, qemu-devel@nongnu.org, vgoyal@redhat.com, mst@redhat.com Subject: Re: [Virtio-fs] [PATCH 08/24] DAX: virtio-fs: Fill in slave commands for mapping Date: Thu, 11 Feb 2021 10:57:55 +0000 [thread overview] Message-ID: <20210211105755.GI247031@stefanha-x1.localdomain> (raw) In-Reply-To: <20210209190224.62827-9-dgilbert@redhat.com> [-- Attachment #1: Type: text/plain, Size: 2023 bytes --] On Tue, Feb 09, 2021 at 07:02:08PM +0000, Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > Fill in definitions for map, unmap and sync commands. > > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > with fix by misono.tomohiro@fujitsu.com > --- > hw/virtio/vhost-user-fs.c | 115 ++++++++++++++++++++++++++++++++++++-- > 1 file changed, 111 insertions(+), 4 deletions(-) > > diff --git a/hw/virtio/vhost-user-fs.c b/hw/virtio/vhost-user-fs.c > index 78401d2ff1..5f2fca4d82 100644 > --- a/hw/virtio/vhost-user-fs.c > +++ b/hw/virtio/vhost-user-fs.c > @@ -37,15 +37,122 @@ > uint64_t vhost_user_fs_slave_map(struct vhost_dev *dev, VhostUserFSSlaveMsg *sm, > int fd) > { > - /* TODO */ > - return (uint64_t)-1; > + VHostUserFS *fs = VHOST_USER_FS(dev->vdev); > + if (!fs) { > + /* Shouldn't happen - but seen on error path */ > + error_report("Bad fs ptr"); > + return (uint64_t)-1; > + } If a non-vhost-user-fs vhost-user device backend sends this message VHOST_USER_FS() -> object_dynamic_cast_assert() there will either be an assertion failure (CONFIG_QOM_CAST_DEBUG) or the pointer will be silently cast to the wrong type (!CONFIG_QOM_CAST_DEBUG). Both of these outcomes are not suitable for input validation. We need to fail cleanly here: VhostUserFS *fs = (VHostUserFS *)object_dynamic_cast(OBJECT(dev->vdev), TYPE_VHOST_USER_FS); if (!fs) { ...handle failure... } > uint64_t vhost_user_fs_slave_unmap(struct vhost_dev *dev, > VhostUserFSSlaveMsg *sm) > { > - /* TODO */ > - return (uint64_t)-1; > + VHostUserFS *fs = VHOST_USER_FS(dev->vdev); > + if (!fs) { > + /* Shouldn't happen - but seen on error path */ > + error_report("Bad fs ptr"); > + return (uint64_t)-1; > + } Same here. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2021-02-11 10:59 UTC|newest] Thread overview: 138+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-02-09 19:02 [PATCH 00/24] virtiofs dax patches Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [PATCH 01/24] DAX: vhost-user: Rework slave return values Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 9:59 ` Stefan Hajnoczi 2021-02-11 9:59 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-11 15:27 ` Vivek Goyal 2021-02-11 15:27 ` [Virtio-fs] " Vivek Goyal 2021-02-18 12:18 ` Dr. David Alan Gilbert 2021-02-18 12:18 ` [Virtio-fs] " Dr. David Alan Gilbert 2021-02-09 19:02 ` [PATCH 02/24] DAX: libvhost-user: Route slave message payload Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 10:05 ` Stefan Hajnoczi 2021-02-11 10:05 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 03/24] DAX: libvhost-user: Allow popping a queue element with bad pointers Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 10:12 ` Stefan Hajnoczi 2021-02-11 10:12 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 04/24] DAX subprojects/libvhost-user: Add virtio-fs slave types Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 10:16 ` Stefan Hajnoczi 2021-02-11 10:16 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 05/24] DAX: virtio: Add shared memory capability Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 10:17 ` Stefan Hajnoczi 2021-02-11 10:17 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 06/24] DAX: virtio-fs: Add cache BAR Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 10:25 ` Stefan Hajnoczi 2021-02-11 10:25 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-18 17:33 ` Dr. David Alan Gilbert 2021-02-18 17:33 ` [Virtio-fs] " Dr. David Alan Gilbert 2021-02-09 19:02 ` [PATCH 07/24] DAX: virtio-fs: Add vhost-user slave commands for mapping Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 10:32 ` Stefan Hajnoczi 2021-02-11 10:32 ` [Virtio-fs] " Stefan Hajnoczi 2021-03-08 17:04 ` Dr. David Alan Gilbert 2021-03-08 17:04 ` [Virtio-fs] " Dr. David Alan Gilbert 2021-02-15 10:35 ` Chirantan Ekbote 2021-02-15 10:35 ` Chirantan Ekbote 2021-02-15 13:25 ` Dr. David Alan Gilbert 2021-02-15 13:25 ` Dr. David Alan Gilbert 2021-02-15 14:24 ` Vivek Goyal 2021-02-15 14:24 ` Vivek Goyal 2021-03-11 12:15 ` Dr. David Alan Gilbert 2021-03-11 12:15 ` Dr. David Alan Gilbert 2021-03-11 13:50 ` Vivek Goyal 2021-03-11 13:50 ` Vivek Goyal 2021-03-11 18:52 ` Dr. David Alan Gilbert 2021-03-11 18:52 ` Dr. David Alan Gilbert 2021-02-09 19:02 ` [PATCH 08/24] DAX: virtio-fs: Fill in " Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 10:57 ` Stefan Hajnoczi [this message] 2021-02-11 10:57 ` Stefan Hajnoczi 2021-02-18 10:59 ` Dr. David Alan Gilbert 2021-02-18 10:59 ` [Virtio-fs] " Dr. David Alan Gilbert 2021-02-09 19:02 ` [PATCH 09/24] DAX: virtiofsd Add cache accessor functions Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 12:31 ` Stefan Hajnoczi 2021-02-11 12:31 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 10/24] DAX: virtiofsd: Add setup/remove mappings fuse commands Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 12:37 ` Stefan Hajnoczi 2021-02-11 12:37 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-11 16:39 ` Dr. David Alan Gilbert 2021-02-11 16:39 ` [Virtio-fs] " Dr. David Alan Gilbert 2021-02-11 18:30 ` Vivek Goyal 2021-02-11 18:30 ` [Virtio-fs] " Vivek Goyal 2021-02-11 19:50 ` Dr. David Alan Gilbert 2021-02-11 19:50 ` [Virtio-fs] " Dr. David Alan Gilbert 2021-02-11 20:15 ` Vivek Goyal 2021-02-11 20:15 ` [Virtio-fs] " Vivek Goyal 2021-02-09 19:02 ` [PATCH 11/24] DAX: virtiofsd: Add setup/remove mapping handlers to passthrough_ll Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 12:37 ` Stefan Hajnoczi 2021-02-11 12:37 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 12/24] DAX: virtiofsd: Wire up passthrough_ll's lo_setupmapping Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 12:41 ` Stefan Hajnoczi 2021-02-11 12:41 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-11 16:05 ` Vivek Goyal 2021-02-11 16:05 ` [Virtio-fs] " Vivek Goyal 2021-02-09 19:02 ` [PATCH 13/24] DAX: virtiofsd: Make lo_removemapping() work Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 12:41 ` Stefan Hajnoczi 2021-02-11 12:41 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 14/24] DAX: virtiofsd: route se down to destroy method Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 12:42 ` Stefan Hajnoczi 2021-02-11 12:42 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 15/24] DAX: virtiofsd: Perform an unmap on destroy Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 12:42 ` Stefan Hajnoczi 2021-02-11 12:42 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 16/24] DAX/unmap: virtiofsd: Add VHOST_USER_SLAVE_FS_IO Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 14:17 ` Stefan Hajnoczi 2021-02-11 14:17 ` [Virtio-fs] " Stefan Hajnoczi 2021-03-16 19:59 ` Dr. David Alan Gilbert 2021-03-16 19:59 ` [Virtio-fs] " Dr. David Alan Gilbert 2021-03-31 10:12 ` Stefan Hajnoczi 2021-03-31 10:12 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 17/24] DAX/unmap virtiofsd: Add wrappers for VHOST_USER_SLAVE_FS_IO Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 14:18 ` Stefan Hajnoczi 2021-02-11 14:18 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 18/24] DAX/unmap virtiofsd: Parse unmappable elements Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 14:29 ` Stefan Hajnoczi 2021-02-11 14:29 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-25 10:19 ` Dr. David Alan Gilbert 2021-02-25 10:19 ` [Virtio-fs] " Dr. David Alan Gilbert 2021-03-31 10:14 ` Stefan Hajnoczi 2021-03-31 10:14 ` [Virtio-fs] " Stefan Hajnoczi 2021-03-17 10:33 ` Dr. David Alan Gilbert 2021-03-17 10:33 ` [Virtio-fs] " Dr. David Alan Gilbert 2021-02-09 19:02 ` [PATCH 19/24] DAX/unmap virtiofsd: Route unmappable reads Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [PATCH 20/24] DAX/unmap virtiofsd: route unmappable write to slave command Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [PATCH 21/24] DAX:virtiofsd: implement FUSE_INIT map_alignment field Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [PATCH 22/24] vhost-user-fs: Extend VhostUserFSSlaveMsg to pass additional info Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [PATCH 23/24] vhost-user-fs: Implement drop CAP_FSETID functionality Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git) 2021-02-11 14:35 ` Stefan Hajnoczi 2021-02-11 14:35 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-11 14:40 ` Vivek Goyal 2021-02-11 14:40 ` [Virtio-fs] " Vivek Goyal 2021-02-15 15:57 ` Stefan Hajnoczi 2021-02-15 15:57 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-16 15:57 ` Vivek Goyal 2021-02-16 15:57 ` [Virtio-fs] " Vivek Goyal 2021-02-22 16:53 ` Stefan Hajnoczi 2021-02-22 16:53 ` [Virtio-fs] " Stefan Hajnoczi 2021-02-09 19:02 ` [PATCH 24/24] virtiofsd: Ask qemu to drop CAP_FSETID if client asked for it Dr. David Alan Gilbert (git) 2021-02-09 19:02 ` [Virtio-fs] " Dr. David Alan Gilbert (git)
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210211105755.GI247031@stefanha-x1.localdomain \ --to=stefanha@redhat.com \ --cc=dgilbert@redhat.com \ --cc=marcandre.lureau@redhat.com \ --cc=mst@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=vgoyal@redhat.com \ --cc=virtio-fs@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.