diff options
Diffstat (limited to 'ospfd/ospf_packet.c')
-rw-r--r-- | ospfd/ospf_packet.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index ce82ee27..8bc49666 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -1881,7 +1881,12 @@ ospf_recv_packet (int fd, struct interface **ifp) unsigned int ifindex = 0; struct iovec iov; struct cmsghdr *cmsg; - char buff [sizeof (*cmsg) + SOPT_SIZE_CMSG_PKTINFO_IPV4()]; +#if defined(CMSG_SPACE) + /* Header and data both require alignment. */ + char buff [CMSG_SPACE(SIZE_CMSG_IFINDEX_IPV4())]; +#else + char buff [sizeof (*cmsg) + SOPT_SIZE_CMSG_IFINDEX_IPV4()]; +#endif struct msghdr msgh; msgh.msg_name = NULL; |