[Libguestfs] [PATCH nbdkit 2/2] file: Allow a file descriptor to be passed to the plugin
Eric Blake
eblake at redhat.com
Thu Aug 18 18:39:23 UTC 2022
On Thu, Aug 18, 2022 at 04:36:13PM +0100, Richard W.M. Jones wrote:
> This is what I pushed - how does it look? I ignored the cases we
> cannot deal with, except O_WRONLY where I emit a debug message but
> continue:
>
> https://gitlab.com/nbdkit/nbdkit/-/blob/master/plugins/file/file.c#L572
>
> > >
> > > There's also the case where r == O_WRONLY which the plugin (and NBD)
> > > cannot deal with. Not sure what to do about that - error?
> >
> > Or allow it, but with the caveat that every NBD_CMD_READ will fail.
> > The only reason to special case h->can_write=false for O_RDONLY is
> > because then we don't advertise it to the client; to save them from
> > getting failures on NBD_CMD_WRITE - but that's because it is an easy
> > thing to advertise. Advertising that NBD_CMD_READ will fail is not
> > easy (and less likely to happen in practice), so failing to serve the
> > file is just as viable as serving it and letting every NBD_CMD_READ
> > fail.
>
> That's basically what I did, plus a debug message :-)
What you have committed looks okay to me for handling the common case
of O_RDONLY without worrying about the other cases. And if someone
tries to play with passing in an fd opened under O_EXEC, they deserve
whatever behavior happens naturally from that explicitly unusual
corner-case.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
More information about the Libguestfs
mailing list