[libvirt PATCH 05/11] qemu_command: fix FD usage in qemuBuildInterfaceCommandLine
Pavel Hrdina
phrdina at redhat.com
Mon Nov 16 16:42:32 UTC 2020
On Mon, Nov 16, 2020 at 05:18:51PM +0100, Peter Krempa wrote:
> On Mon, Nov 16, 2020 at 16:38:52 +0100, Pavel Hrdina wrote:
> > If virCommandPassFD() is called with VIR_COMMAND_PASS_FD_CLOSE_PARENT
> > the passed FD is closed and should not be used after that call.
>
> This description doesn't seem to make sense. The filedescriptor itself
> isn't really used in the caller. The only thing that is used is the
> number of the filedescriptor which is used to format the string being
> passed to qemu which is should be correct.
Right, the description was not accurate. By "should not be used" I meant
that we close it again in the cleanup section.
> >
> > Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> > ---
> > src/qemu/qemu_command.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> > index 0eec35da16..0580feb475 100644
> > --- a/src/qemu/qemu_command.c
> > +++ b/src/qemu/qemu_command.c
> > @@ -8142,7 +8142,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
> > g_autofree char *fdset = NULL;
> > g_autofree char *addfdarg = NULL;
> >
> > - virCommandPassFD(cmd, vdpafd, VIR_COMMAND_PASS_FD_CLOSE_PARENT);
> > + virCommandPassFD(cmd, vdpafd, 0);
> > fdset = qemuVirCommandGetFDSet(cmd, vdpafd);
>
> A proper fix will be to move 'vdpafd = -1;' here or copy it's value
> somewhere to prevent the double close ...
Moving the 'vdpafd = -1;' here would introduce a different bug because
'vdpafd' is used after that condition as well. So I guess the only
correct solution is to copy the value to a different variable.
Thanks for the review, I'll send a v2.
Pavel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20201116/e4748f1e/attachment-0001.sig>
More information about the libvir-list
mailing list