[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[qemu-xen staging] hax: Fix setting of FD_CLOEXEC



commit 8cf58a49f883f089e7d4b6e19acc987085d024fd
Author:     Eric Blake <eblake@xxxxxxxxxx>
AuthorDate: Mon Apr 20 12:53:07 2020 -0500
Commit:     Eric Blake <eblake@xxxxxxxxxx>
CommitDate: Mon Jul 13 09:01:01 2020 -0500

    hax: Fix setting of FD_CLOEXEC
    
    Blindly setting FD_CLOEXEC without a read-modify-write will
    inadvertently clear any other intentionally-set bits, such as a
    proposed new bit for designating a fd that must behave in 32-bit mode.
    Use our wrapper function instead of an incorrect hand-rolled version.
    
    Signed-off-by: Eric Blake <eblake@xxxxxxxxxx>
    Message-Id: <20200420175309.75894-2-eblake@xxxxxxxxxx>
    Reviewed-by: Colin Xu <colin.xu@xxxxxxxxx>
---
 target/i386/hax-posix.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/target/i386/hax-posix.c b/target/i386/hax-posix.c
index 3bad89f133..5f9d1b803d 100644
--- a/target/i386/hax-posix.c
+++ b/target/i386/hax-posix.c
@@ -23,7 +23,7 @@ hax_fd hax_mod_open(void)
         fprintf(stderr, "Failed to open the hax module\n");
     }
 
-    fcntl(fd, F_SETFD, FD_CLOEXEC);
+    qemu_set_cloexec(fd);
 
     return fd;
 }
@@ -147,7 +147,7 @@ hax_fd hax_host_open_vm(struct hax_state *hax, int vm_id)
     fd = open(vm_name, O_RDWR);
     g_free(vm_name);
 
-    fcntl(fd, F_SETFD, FD_CLOEXEC);
+    qemu_set_cloexec(fd);
 
     return fd;
 }
@@ -200,7 +200,7 @@ hax_fd hax_host_open_vcpu(int vmid, int vcpuid)
     if (fd < 0) {
         fprintf(stderr, "Failed to open the vcpu devfs\n");
     }
-    fcntl(fd, F_SETFD, FD_CLOEXEC);
+    qemu_set_cloexec(fd);
     return fd;
 }
 
--
generated by git-patchbot for /home/xen/git/qemu-xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.