summary refs log tree commit diff
path: root/vsock.c
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-03-09 17:18:16 +0000
committerAlyssa Ross <hi@alyssa.is>2021-03-10 22:48:42 +0000
commit2072b65edd19d24abe482def52ca3781b1742600 (patch)
tree4127816917b79b9762d66c49dbdf89133eac84da /vsock.c
parent93ebb9981723627388dbe040dda51a1cfa31b044 (diff)
downloaducspi-vsock-2072b65edd19d24abe482def52ca3781b1742600.tar
ucspi-vsock-2072b65edd19d24abe482def52ca3781b1742600.tar.gz
ucspi-vsock-2072b65edd19d24abe482def52ca3781b1742600.tar.bz2
ucspi-vsock-2072b65edd19d24abe482def52ca3781b1742600.tar.lz
ucspi-vsock-2072b65edd19d24abe482def52ca3781b1742600.tar.xz
ucspi-vsock-2072b65edd19d24abe482def52ca3781b1742600.tar.zst
ucspi-vsock-2072b65edd19d24abe482def52ca3781b1742600.zip
vsock_open: return fd instead of 0 on success
Previously, this returned the return value of connect(2), which is 0
on success.  So stdin would be assigned to descriptors 6 and 7 in
vsockclient instead of the socket.  Oops.

Message-Id: <20210309171816.8589-1-hi@alyssa.is>
Reviewed-by: Cole Helbling <cole.e.helbling@outlook.com>
Diffstat (limited to 'vsock.c')
-rw-r--r--vsock.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/vsock.c b/vsock.c
index 3bcd8b3..d9ff3b6 100644
--- a/vsock.c
+++ b/vsock.c
@@ -55,7 +55,10 @@ int vsock_open(uint32_t cid, uint32_t port)
 	if (fd == -1)
 		return -1;
 
-	return vsock_connect(fd, cid, port);
+	if (vsock_connect(fd, cid, port) == -1)
+		return -1;
+
+	return fd;
 }
 
 int vsock_get_port(int fd, uint32_t *port)