diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/vhost-user-gpu/main.c | 29 | ||||
-rw-r--r-- | contrib/vhost-user-input/main.c | 12 |
2 files changed, 24 insertions, 17 deletions
diff --git a/contrib/vhost-user-gpu/main.c b/contrib/vhost-user-gpu/main.c index f9e2146b69..04b753046f 100644 --- a/contrib/vhost-user-gpu/main.c +++ b/contrib/vhost-user-gpu/main.c @@ -138,22 +138,20 @@ static int vg_sock_fd_write(int sock, const void *buf, ssize_t buflen, int fd) { ssize_t ret; - struct msghdr msg; - struct iovec iov; + struct iovec iov = { + .iov_base = (void *)buf, + .iov_len = buflen, + }; + struct msghdr msg = { + .msg_iov = &iov, + .msg_iovlen = 1, + }; union { struct cmsghdr cmsghdr; char control[CMSG_SPACE(sizeof(int))]; } cmsgu; struct cmsghdr *cmsg; - iov.iov_base = (void *)buf; - iov.iov_len = buflen; - - msg.msg_name = NULL; - msg.msg_namelen = 0; - msg.msg_iov = &iov; - msg.msg_iovlen = 1; - if (fd != -1) { msg.msg_control = cmsgu.control; msg.msg_controllen = sizeof(cmsgu.control); @@ -164,9 +162,6 @@ vg_sock_fd_write(int sock, const void *buf, ssize_t buflen, int fd) cmsg->cmsg_type = SCM_RIGHTS; *((int *)CMSG_DATA(cmsg)) = fd; - } else { - msg.msg_control = NULL; - msg.msg_controllen = 0; } do { @@ -354,7 +349,7 @@ vg_disable_scanout(VuGpu *g, int scanout_id) scanout->width = 0; scanout->height = 0; - { + if (g->sock_fd >= 0) { VhostUserGpuMsg msg = { .request = VHOST_USER_GPU_SCANOUT, .size = sizeof(VhostUserGpuScanout), @@ -1160,13 +1155,17 @@ main(int argc, char *argv[]) if (opt_socket_path) { int lsock = unix_listen(opt_socket_path, &error_fatal); + if (lsock < 0) { + g_printerr("Failed to listen on %s.\n", opt_socket_path); + exit(EXIT_FAILURE); + } fd = accept(lsock, NULL, NULL); close(lsock); } else { fd = opt_fdnum; } if (fd == -1) { - g_printerr("Invalid socket"); + g_printerr("Invalid vhost-user socket.\n"); exit(EXIT_FAILURE); } diff --git a/contrib/vhost-user-input/main.c b/contrib/vhost-user-input/main.c index 8d493f598e..8b4e7d2536 100644 --- a/contrib/vhost-user-input/main.c +++ b/contrib/vhost-user-input/main.c @@ -342,7 +342,11 @@ main(int argc, char *argv[]) vi.config = g_array_new(false, false, sizeof(virtio_input_config)); memset(&id, 0, sizeof(id)); - ioctl(vi.evdevfd, EVIOCGNAME(sizeof(id.u.string) - 1), id.u.string); + if (ioctl(vi.evdevfd, EVIOCGNAME(sizeof(id.u.string) - 1), + id.u.string) < 0) { + g_printerr("Failed to get evdev name: %s\n", g_strerror(errno)); + exit(EXIT_FAILURE); + } id.select = VIRTIO_INPUT_CFG_ID_NAME; id.size = strlen(id.u.string); g_array_append_val(vi.config, id); @@ -367,13 +371,17 @@ main(int argc, char *argv[]) if (opt_socket_path) { int lsock = unix_listen(opt_socket_path, &error_fatal); + if (lsock < 0) { + g_printerr("Failed to listen on %s.\n", opt_socket_path); + exit(EXIT_FAILURE); + } fd = accept(lsock, NULL, NULL); close(lsock); } else { fd = opt_fdnum; } if (fd == -1) { - g_printerr("Invalid socket"); + g_printerr("Invalid vhost-user socket.\n"); exit(EXIT_FAILURE); } vug_init(&vi.dev, fd, vi_panic, &vuiface); |