See https://www.freebsd.org/cgi/query-pr.cgi?pr=76075
OpenBSD has the same issue (lines 457 to 464 in arp.c). FreeBSD fixed this back in 2005 by doing a realloc loop (see above link). Someone in #openbsd at freenode hit this problem a few days ago. Cheers, Thomas.
