From 07a637df472dae766859e41aa799b6a549f107ad Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sat, 1 Apr 2006 17:28:11 +0000 Subject: [PATCH] Patch from KRONSTORFER Horst to Fix a size mismatch in ping, such as the 56/84 mismatch inthe following example: # ping -c 1 172.16.2.1 PING 172.16.2.1 (172.16.2.1): 56 data bytes 84 bytes from 172.16.2.1: icmp_seq=0 ttl=64 time=0.2 ms --- networking/ping.c | 4 ++-- networking/ping6.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/networking/ping.c b/networking/ping.c index d33cb358f..7fe52ab39 100644 --- a/networking/ping.c +++ b/networking/ping.c @@ -108,7 +108,7 @@ static void ping(const char *host) pkt->icmp_type = ICMP_ECHO; pkt->icmp_cksum = in_cksum((unsigned short *) pkt, sizeof(packet)); - c = sendto(pingsock, packet, sizeof(packet), 0, + c = sendto(pingsock, packet, DEFDATALEN + ICMP_MINLEN, 0, (struct sockaddr *) &pingaddr, sizeof(struct sockaddr_in)); if (c < 0 || c != sizeof(packet)) @@ -202,7 +202,7 @@ static void sendping(int junk) { struct icmp *pkt; int i; - char packet[datalen + sizeof(struct icmp)]; + char packet[datalen + ICMP_MINLEN]; pkt = (struct icmp *) packet; diff --git a/networking/ping6.c b/networking/ping6.c index 4e55081fb..3f632e060 100644 --- a/networking/ping6.c +++ b/networking/ping6.c @@ -111,7 +111,7 @@ static void ping(const char *host) setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, (char *) &sockopt, sizeof(sockopt)); - c = sendto(pingsock, packet, sizeof(packet), 0, + c = sendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr), 0, (struct sockaddr *) &pingaddr, sizeof(struct sockaddr_in6)); if (c < 0 || c != sizeof(packet)) @@ -204,7 +204,7 @@ static void sendping(int junk) { struct icmp6_hdr *pkt; int i; - char packet[datalen + 8]; + char packet[datalen + sizeof (struct icmp6_hdr)]; pkt = (struct icmp6_hdr *) packet;