]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: sanity check vhost user FD before passing to QEMU
authorDaniel P. Berrangé <berrange@redhat.com>
Mon, 30 Sep 2019 11:39:17 +0000 (12:39 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Mon, 30 Sep 2019 12:08:43 +0000 (13:08 +0100)
Ensure that the FD we're passing to QEMU is actually open, so we get a
sane error message upfront instead of telling QEMU to use a closed FD.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
src/qemu/qemu_command.c

index 77470a6037493413227dae51b223b8780392a505..8c979fdf65ad87f60487cb20e4d1cde34b3bd3e6 100644 (file)
@@ -4704,6 +4704,12 @@ qemuBuildVhostUserChardevStr(const char *alias,
 {
     char *chardev = NULL;
 
+    if (*fd == -1) {
+        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                       _("Attempt to pass closed vhostuser FD"));
+        return NULL;
+    }
+
     if (virAsprintf(&chardev, "socket,id=chr-vu-%s,fd=%d", alias, *fd) < 0)
         return NULL;