Fix bug 309, where ping -s 1 localhost would give an elapsed time 9 digits
long due to a stack overflow. Apparently, iputils also does this.
{
struct icmp *pkt;
int i;
- char packet[datalen + 8];
+ char packet[datalen + sizeof(struct icmp)];
pkt = (struct icmp *) packet;
pkt->icmp_id = myid;
CLR(ntohs(pkt->icmp_seq) % MAX_DUP_CHK);
- gettimeofday((struct timeval *) &packet[8], NULL);
+ gettimeofday((struct timeval *) &pkt->icmp_dun, NULL);
pkt->icmp_cksum = in_cksum((unsigned short *) pkt, sizeof(packet));
i = sendto(pingsock, packet, sizeof(packet), 0,