aboutsummaryrefslogtreecommitdiff
path: root/contrib/vhost-user-scsi
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2022-05-16 16:57:01 +0100
committerMichael S. Tsirkin <mst@redhat.com>2022-05-16 16:48:35 -0400
commit6852c21db229c4bf4c1db772444bdfbbd027e5b8 (patch)
tree5e1c17b78c6867e2ebce07d8708e9df0f38997e0 /contrib/vhost-user-scsi
parent2a7888cc3aa31faee839fa5dddad354ff8941f4c (diff)
downloadqemu-6852c21db229c4bf4c1db772444bdfbbd027e5b8.zip
qemu-6852c21db229c4bf4c1db772444bdfbbd027e5b8.tar.gz
qemu-6852c21db229c4bf4c1db772444bdfbbd027e5b8.tar.bz2
vhost-user-scsi: avoid unlink(NULL) with fd passing
Commit 747421e949fc1eb3ba66b5fcccdb7ba051918241 ("Implements Backend Program conventions for vhost-user-scsi") introduced fd-passing support as part of implementing the vhost-user backend program conventions. When fd passing is used the UNIX domain socket path is NULL and we must not call unlink(2). The unlink(2) call is necessary when the listen socket, lsock, was created successfully since that means the UNIX domain socket is visible in the file system. Fixes: Coverity CID 1488353 Fixes: 747421e949fc1eb3ba66b5fcccdb7ba051918241 ("Implements Backend Program conventions for vhost-user-scsi") Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20220516155701.1789638-1-stefanha@redhat.com> Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'contrib/vhost-user-scsi')
-rw-r--r--contrib/vhost-user-scsi/vhost-user-scsi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/contrib/vhost-user-scsi/vhost-user-scsi.c b/contrib/vhost-user-scsi/vhost-user-scsi.c
index b2c0f98..9ef61cf 100644
--- a/contrib/vhost-user-scsi/vhost-user-scsi.c
+++ b/contrib/vhost-user-scsi/vhost-user-scsi.c
@@ -433,13 +433,16 @@ out:
if (vdev_scsi) {
g_main_loop_unref(vdev_scsi->loop);
g_free(vdev_scsi);
- unlink(opt_socket_path);
}
if (csock >= 0) {
close(csock);
}
if (lsock >= 0) {
close(lsock);
+
+ if (opt_socket_path) {
+ unlink(opt_socket_path);
+ }
}
g_free(opt_socket_path);
g_free(iscsi_uri);