]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: fix up permissions for pre-created UNIX sockets
authorJán Tomko <jtomko@redhat.com>
Wed, 3 Oct 2018 12:10:13 +0000 (14:10 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 3 Oct 2018 14:26:08 +0000 (16:26 +0200)
My commit d6b8838 fixed the uid:gid for the pre-created UNIX sockets
but did not account for the different umask of libvirtd and QEMU.
Since commit 0e1a1a8c we set umask to '0002' for the QEMU process.
Manually tune-up the permissions to match what we would have gotten
if QEMU had created the socket.

https://bugzilla.redhat.com/show_bug.cgi?id=1633389

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_command.c

index 887947dc116791a927ca35c47d1b76f9366831c3..d77cf8c2d6abaa8e945b8f32229bc881d3830c5e 100644 (file)
@@ -5034,6 +5034,12 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev)
         goto error;
     }
 
+    /* We run QEMU with umask 0002. Compensate for the umask
+     * libvirtd might be running under to get the same permission
+     * QEMU would have. */
+    if (virFileUpdatePerm(dev->data.nix.path, 0002, 0664) < 0)
+        goto error;
+
     return fd;
 
  error: