]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_shim: Allow other users to enter the root dir
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 28 Feb 2020 13:42:44 +0000 (14:42 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 5 Mar 2020 10:24:38 +0000 (11:24 +0100)
When virt-qemu-run is ran without any root directory specified on
the command line, a temporary directory is made and used instead.
But since we are using g_dir_make_tmp() to create the directory
it is going to have 0700 mode. So even though we create the whole
directory structure under it and label everything, QEMU is very
likely to not have the access. This is because in this case there
is no qemu.conf and thus distro default UID:GID is used to run
QEMU (e.g. qemu:kvm on Fedora). Change the mode of the temporary
directory so that everybody has eXecute permission.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
src/qemu/qemu_shim.c

index 5b7840e971dd551b735710c1ae66f0fdc7e78848..fd905825aa29bb897f3e03451f4f38003ed96b86 100644 (file)
@@ -158,6 +158,12 @@ int main(int argc, char **argv)
             return 1;
         }
         tmproot = true;
+
+        if (chmod(root, 0755) < 0) {
+            g_printerr("%s: cannot chown temporary dir: %s\n",
+                       argv[0], g_strerror(errno));
+            goto cleanup;
+        }
     }
 
     virFileActivateDirOverrideForProg(argv[0]);