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@xxxxxxxxxx> > > --- > > 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
Attachment:
signature.asc
Description: PGP signature