]> git.proxmox.com Git - mirror_frr.git/commit - zebra/kernel_socket.c
zebra: kernel_socket: fix 64bit MacOS X alignment
authorDoug VanLeuven <roamdad@sonic.net>
Wed, 10 Oct 2012 22:10:14 +0000 (22:10 +0000)
committerDavid Lamparter <equinox@opensourcerouting.org>
Mon, 5 Nov 2012 16:11:36 +0000 (11:11 -0500)
commit3b33de676ac8e84b82f40520ecd0f4722e16b349
tree28b0d91a6d3946ac244f7784274196a43c8fe0b9
parent7d50ad444ffadd4110152113cc9583db96b3ad67
zebra: kernel_socket: fix 64bit MacOS X alignment

In OS X 10.7 zebra crashed on invalid execution address.

sockaddr padding in *_msghdr is observed to be 4 bytes in 64bit OS X.

The ROUNDUP macro assumed alignment on sizeof(long) which
allocates 8 bytes on 64bit systems, 4 bytes on 32bit systems
which is true for BSD generally.

Test for Apple and use sizeof(int) which allocates 4 bytes on 32 & 64bit
systems.

Tested on 64bit OS X 10.7, FreeBSD 9.0 amd64 & i386 (32bit)
using gcc & clang

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
zebra/kernel_socket.c