summary refs log tree commit diff
path: root/bin/dtch.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-07-29 20:56:12 -0400
committerJune McEnroe <june@causal.agency>2018-07-29 20:56:12 -0400
commit9e88922bc090eee0919e5a041d12b5f42aa8b86c (patch)
treea6c5c1c4ad02a46143a30d3ffe7dc1a91de8e13a /bin/dtch.c
parentFix cfmakeraw calls (diff)
downloadsrc-9e88922bc090eee0919e5a041d12b5f42aa8b86c.tar.gz
src-9e88922bc090eee0919e5a041d12b5f42aa8b86c.zip
Fix dtch cmsg size
Apparently you actually need CMSG_SPACE and not just CMSG_LEN... Well
done, everyone.
Diffstat (limited to 'bin/dtch.c')
-rw-r--r--bin/dtch.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/bin/dtch.c b/bin/dtch.c
index 94ed88d7..72f88e4d 100644
--- a/bin/dtch.c
+++ b/bin/dtch.c
@@ -56,7 +56,7 @@ static char z;
 static struct iovec iov = { .iov_base = &z, .iov_len = 1 };
 
 static ssize_t sendFd(int sock, int fd) {
-	size_t size = CMSG_LEN(sizeof(int));
+	size_t size = CMSG_SPACE(sizeof(int));
 	char buf[size];
 	struct msghdr msg = {
 		.msg_iov = &iov,
@@ -66,7 +66,7 @@ static ssize_t sendFd(int sock, int fd) {
 	};
 
 	struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg);
-	cmsg->cmsg_len = size;
+	cmsg->cmsg_len = CMSG_LEN(sizeof(int));
 	cmsg->cmsg_level = SOL_SOCKET;
 	cmsg->cmsg_type = SCM_RIGHTS;
 	*(int *)CMSG_DATA(cmsg) = fd;
@@ -75,7 +75,7 @@ static ssize_t sendFd(int sock, int fd) {
 }
 
 static int recvFd(int sock) {
-	size_t size = CMSG_LEN(sizeof(int));
+	size_t size = CMSG_SPACE(sizeof(int));
 	char buf[size];
 	struct msghdr msg = {
 		.msg_iov = &iov,