mirror of https://github.com/proxmox/mirror_qemu
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@redhat.com> Message-Id: <20200420175309.75894-2-eblake@redhat.com> Reviewed-by: Colin Xu <colin.xu@intel.com>master
parent
00d69986da
commit
8cf58a49f8
|
@ -23,7 +23,7 @@ hax_fd hax_mod_open(void)
|
||||||
fprintf(stderr, "Failed to open the hax module\n");
|
fprintf(stderr, "Failed to open the hax module\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
fcntl(fd, F_SETFD, FD_CLOEXEC);
|
qemu_set_cloexec(fd);
|
||||||
|
|
||||||
return 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);
|
fd = open(vm_name, O_RDWR);
|
||||||
g_free(vm_name);
|
g_free(vm_name);
|
||||||
|
|
||||||
fcntl(fd, F_SETFD, FD_CLOEXEC);
|
qemu_set_cloexec(fd);
|
||||||
|
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
@ -200,7 +200,7 @@ hax_fd hax_host_open_vcpu(int vmid, int vcpuid)
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
fprintf(stderr, "Failed to open the vcpu devfs\n");
|
fprintf(stderr, "Failed to open the vcpu devfs\n");
|
||||||
}
|
}
|
||||||
fcntl(fd, F_SETFD, FD_CLOEXEC);
|
qemu_set_cloexec(fd);
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue