[libvirt PATCH 05/11] qemu_command: fix FD usage in qemuBuildInterfaceCommandLine

Peter Krempa pkrempa at redhat.com
Mon Nov 16 16:18:51 UTC 2020


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.

> 
> 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 ...

>          if (!fdset)
>              goto cleanup;

... on this condition.


> -- 
> 2.26.2
> 




More information about the libvir-list mailing list