diff options
author | June McEnroe <june@causal.agency> | 2018-07-29 20:56:12 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2018-07-29 20:56:12 -0400 |
commit | 9e88922bc090eee0919e5a041d12b5f42aa8b86c (patch) | |
tree | a6c5c1c4ad02a46143a30d3ffe7dc1a91de8e13a /bin | |
parent | Fix cfmakeraw calls (diff) | |
download | src-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')
-rw-r--r-- | bin/dtch.c | 6 |
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, |