2004-08-26 Greg Troxel <gdt@fnord.ir.bbn.com>

* ospf_packet.c (ospf_recv_packet): adjust size declaration of
	buffer used to get interface index so that it compiles on other
	than Linux and includes the required alignment space.  Probably
	this was only working on sparc/sparc64 because most of sockaddr_dl
	was not being written.
This commit is contained in:
gdt 2004-08-26 13:14:07 +00:00
parent afa43b2392
commit d0deca6837
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2004-08-26 Greg Troxel <gdt@fnord.ir.bbn.com>
* ospf_packet.c (ospf_recv_packet): adjust size declaration of
buffer used to get interface index so that it compiles on other
than Linux and includes the required alignment space. Probably
this was only working on sparc/sparc64 because most of sockaddr_dl
was not being written.
2004-08-19 Paul Jakma <paul@dishone.st>
* ospf_packet.c: update to match sockopt renames.

View File

@ -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;