[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