summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Franke <chris@opensourcerouting.org>2013-03-08 02:35:38 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2013-11-20 10:35:59 +0100
commit1579a67f130ca34df9acefac14ebcdfdd8f6600a (patch)
tree8c12770a8628fc786e08c08a125114f7d56b66d4
parent7d4aa1d57d54a57aae78e6b12cf4524e2c43a514 (diff)
downloadquagga-1579a67f130ca34df9acefac14ebcdfdd8f6600a.tar.bz2
quagga-1579a67f130ca34df9acefac14ebcdfdd8f6600a.tar.xz
ospf6d: set cmsg size correctly
On both Linux and FreeBSD, msg_controllen should be set to CMSG_LEN, not CMSG_SPACE. This avoids sending 4 bytes of trailing garbage to the kernel. Signed-off-by: Christian Franke <chris@opensourcerouting.org>
-rw-r--r--ospf6d/ospf6_network.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ospf6d/ospf6_network.c b/ospf6d/ospf6_network.c
index eed7f9d6..74cfbec7 100644
--- a/ospf6d/ospf6_network.c
+++ b/ospf6d/ospf6_network.c
@@ -206,7 +206,7 @@ ospf6_sendmsg (struct in6_addr *src, struct in6_addr *dst,
smsghdr.msg_name = (caddr_t) &dst_sin6;
smsghdr.msg_namelen = sizeof (struct sockaddr_in6);
smsghdr.msg_control = (caddr_t) cmsgbuf;
- smsghdr.msg_controllen = sizeof (cmsgbuf);
+ smsghdr.msg_controllen = scmsgp->cmsg_len;
retval = sendmsg (ospf6_sock, &smsghdr, 0);
if (retval != iov_totallen (message))