]> git.proxmox.com Git - mirror_qemu.git/commitdiff
fsdev: fix virtfs-proxy-helper cwd
authorGreg Kurz <groug@kaod.org>
Thu, 25 May 2017 08:30:13 +0000 (10:30 +0200)
committerGreg Kurz <groug@kaod.org>
Thu, 25 May 2017 08:30:13 +0000 (10:30 +0200)
Since chroot() doesn't change the current directory, it is indeed a good
practice to chdir() to the target directory and then then chroot(), or
to chroot() to the target directory and then chdir("/").

The current code does neither of them actually. Let's go for the latter.

This doesn't fix any security issue since all of this takes place before
the helper begins to process requests.

Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
fsdev/virtfs-proxy-helper.c

index 54f7ad1c48f0fe529f77de3b9ddf48119ed801e6..4c4238f62e53157278f33436b77784e8b8ad98b4 100644 (file)
@@ -1129,14 +1129,14 @@ int main(int argc, char **argv)
         }
     }
 
-    if (chdir("/") < 0) {
-        do_perror("chdir");
-        goto error;
-    }
     if (chroot(rpath) < 0) {
         do_perror("chroot");
         goto error;
     }
+    if (chdir("/") < 0) {
+        do_perror("chdir");
+        goto error;
+    }
 
     get_version = false;
 #ifdef FS_IOC_GETVERSION