summary refs log tree commit diff
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
commit23be20872761de1f0c673b875ee43ac60ed76d37 (patch)
tree90636a76211e7be45ed804361c0acfcd7e20f2f7
parentFix cfmakeraw calls (diff)
downloadsrc-23be20872761de1f0c673b875ee43ac60ed76d37.tar.gz
src-23be20872761de1f0c673b875ee43ac60ed76d37.zip
Fix dtch cmsg size
Apparently you actually need CMSG_SPACE and not just CMSG_LEN... Well
done, everyone.
Diffstat (limited to '')
-rw-r--r--bin/dtch.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/bin/dtch.c b/bin/dtch.c
index a0cd2899..6466c3be 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,