Index: src/garp.c =================================================================== --- src/garp.c +++ src/garp.c 2006-07-19 20:45:25.000000000 +0200 @@ -30,7 +30,7 @@ } else { arp[7] = 0x02; memcpy(&arp[14], &vaddr.s_addr, (size_t) 4U); - memset(&arp[24], 0xff, ETHER_ADDR_LEN); + memset(&arp[24], 0xff, IP_ADDR_LEN); } if ((pkt = ALLOCA(sizeof *eh_ptr + sizeof arp)) == NULL) { logfile(LOG_ERR, _("out of memory to send gratuitous ARP")); Index: src/ucarp.h =================================================================== --- src/ucarp.h +++ src/ucarp.h 2006-07-19 20:45:09.000000000 +0200 @@ -118,6 +118,10 @@ #ifndef ETHER_ADDR_LEN # define ETHER_ADDR_LEN 6 #endif +#ifndef IP_ADDR_LEN +# define IP_ADDR_LEN 4 +#endif + #ifndef IPPROTO_CARP # define IPPROTO_CARP 112 #endif