summaryrefslogtreecommitdiffstats
path: root/hw/display
diff options
context:
space:
mode:
authorGuoyi Tu2022-08-23 09:50:40 +0200
committerMarc-André Lureau2022-09-29 12:38:05 +0200
commit9cbda7b354389e536d546cc2091365bc402b3206 (patch)
tree827376839fbdddb4f5171f4350ddc63dbcd5cbe3 /hw/display
parentoslib-posix: Introduce qemu_socketpair() (diff)
downloadqemu-9cbda7b354389e536d546cc2091365bc402b3206.tar.gz
qemu-9cbda7b354389e536d546cc2091365bc402b3206.tar.xz
qemu-9cbda7b354389e536d546cc2091365bc402b3206.zip
vhost-user: Call qemu_socketpair() instead of socketpair()
As the close-on-exec flags is not set on the file descriptors returned by socketpair() at default, the fds will survive across exec' function. In the case that exec' function get invoked, such as the live-update feature which is been developing, it will cause fd leaks. To address this problem, we should call qemu_socketpair() to create an pair of connected sockets with the close-on-exec flag set. Signed-off-by: Guoyi Tu <tugy@chinatelecom.cn> Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <7002b12a5fb0a30cd878e14e07da61c36da72913.1661240709.git.tugy@chinatelecom.cn>
Diffstat (limited to 'hw/display')
-rw-r--r--hw/display/vhost-user-gpu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
index 3340ef9e5f..19c0e20103 100644
--- a/hw/display/vhost-user-gpu.c
+++ b/hw/display/vhost-user-gpu.c
@@ -11,6 +11,7 @@
*/
#include "qemu/osdep.h"
+#include "qemu/sockets.h"
#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-gpu.h"
#include "chardev/char-fe.h"
@@ -375,7 +376,7 @@ vhost_user_gpu_do_set_socket(VhostUserGPU *g, Error **errp)
Chardev *chr;
int sv[2];
- if (socketpair(PF_UNIX, SOCK_STREAM, 0, sv) == -1) {
+ if (qemu_socketpair(PF_UNIX, SOCK_STREAM, 0, sv) == -1) {
error_setg_errno(errp, errno, "socketpair() failed");
return false;
}