diff options
author | Damien Miller <djm@mindrot.org> | 2008-03-27 10:54:44 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2008-03-27 10:54:44 +1100 |
commit | be71e2d9725cf0833ee208222eb6860bb17316ef (patch) | |
tree | 594de0c2c1e853be62ee6403c8b22b7a5a69236e /monitor_fdpass.c | |
parent | f92e063872ffc12fd82be7e344e8aeeeefd7a8ee (diff) |
- deraadt@cvs.openbsd.org 2008/03/15 16:19:02
[monitor_fdpass.c]
Repair the simple cases for msg_controllen where it should just be
CMSG_SIZE(sizeof(int)), not sizeof(buffer) which may be larger because
of alignment; ok kettenis hshoexer
Diffstat (limited to 'monitor_fdpass.c')
-rw-r--r-- | monitor_fdpass.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/monitor_fdpass.c b/monitor_fdpass.c index a3e995df8..18ae6248a 100644 --- a/monitor_fdpass.c +++ b/monitor_fdpass.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor_fdpass.c,v 1.15 2008/03/13 01:49:53 deraadt Exp $ */ | 1 | /* $OpenBSD: monitor_fdpass.c,v 1.16 2008/03/15 16:19:02 deraadt Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 2001 Niels Provos <provos@citi.umich.edu> | 3 | * Copyright 2001 Niels Provos <provos@citi.umich.edu> |
4 | * All rights reserved. | 4 | * All rights reserved. |
@@ -63,7 +63,7 @@ mm_send_fd(int sock, int fd) | |||
63 | msg.msg_accrightslen = sizeof(fd); | 63 | msg.msg_accrightslen = sizeof(fd); |
64 | #else | 64 | #else |
65 | msg.msg_control = (caddr_t)&cmsgbuf.buf; | 65 | msg.msg_control = (caddr_t)&cmsgbuf.buf; |
66 | msg.msg_controllen = sizeof(cmsgbuf.buf); | 66 | msg.msg_controllen = CMSG_LEN(sizeof(int)); |
67 | cmsg = CMSG_FIRSTHDR(&msg); | 67 | cmsg = CMSG_FIRSTHDR(&msg); |
68 | cmsg->cmsg_len = CMSG_LEN(sizeof(int)); | 68 | cmsg->cmsg_len = CMSG_LEN(sizeof(int)); |
69 | cmsg->cmsg_level = SOL_SOCKET; | 69 | cmsg->cmsg_level = SOL_SOCKET; |
@@ -121,7 +121,7 @@ mm_receive_fd(int sock) | |||
121 | msg.msg_accrightslen = sizeof(fd); | 121 | msg.msg_accrightslen = sizeof(fd); |
122 | #else | 122 | #else |
123 | msg.msg_control = &cmsgbuf.buf; | 123 | msg.msg_control = &cmsgbuf.buf; |
124 | msg.msg_controllen = sizeof(cmsgbuf.buf); | 124 | msg.msg_controllen = CMSG_LEN(sizeof(int)); |
125 | #endif | 125 | #endif |
126 | 126 | ||
127 | if ((n = recvmsg(sock, &msg, 0)) == -1) { | 127 | if ((n = recvmsg(sock, &msg, 0)) == -1) { |