-Index: busybox-1.7.2/networking/ping.c
-===================================================================
---- busybox-1.7.2.orig/networking/ping.c 2007-09-03 13:48:27.000000000 +0200
-+++ busybox-1.7.2/networking/ping.c 2007-10-04 15:38:15.424376713 +0200
-@@ -91,7 +91,7 @@
+--- a/networking/ping.c
++++ b/networking/ping.c
+@@ -79,6 +79,7 @@ static int in_cksum(unsigned short *buf,
+ /* simple version */
+
+ static char *hostname;
++static unsigned datalen = DEFDATALEN;
+
+ static void noresp(int ign UNUSED_PARAM)
+ {
+@@ -91,7 +92,7 @@ static void ping4(len_and_sockaddr *lsa)
struct sockaddr_in pingaddr;
struct icmp *pkt;
int pingsock, c;
+ char packet[datalen + ICMP_MINLEN + MAXIPLEN + MAXICMPLEN];
pingsock = create_icmp_socket();
- pingaddr = lsa->sin;
-@@ -101,7 +101,7 @@
+ pingaddr = lsa->u.sin;
+@@ -101,7 +102,7 @@ static void ping4(len_and_sockaddr *lsa)
pkt->icmp_type = ICMP_ECHO;
pkt->icmp_cksum = in_cksum((unsigned short *) pkt, sizeof(packet));
(struct sockaddr *) &pingaddr, sizeof(pingaddr));
/* listen for replies */
-@@ -135,7 +135,7 @@
+@@ -135,7 +136,7 @@ static void ping6(len_and_sockaddr *lsa)
struct icmp6_hdr *pkt;
int pingsock, c;
int sockopt;
+ char packet[datalen + ICMP_MINLEN + MAXIPLEN + MAXICMPLEN];
pingsock = create_icmp6_socket();
- pingaddr = lsa->sin6;
-@@ -147,7 +147,7 @@
+ pingaddr = lsa->u.sin6;
+@@ -147,7 +148,7 @@ static void ping6(len_and_sockaddr *lsa)
sockopt = offsetof(struct icmp6_hdr, icmp6_cksum);
setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt));