diff options
Diffstat (limited to 'package/busybox/patches/460-truncated_ping_results.patch')
-rw-r--r-- | package/busybox/patches/460-truncated_ping_results.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/package/busybox/patches/460-truncated_ping_results.patch b/package/busybox/patches/460-truncated_ping_results.patch new file mode 100644 index 0000000000..e655acfdf2 --- /dev/null +++ b/package/busybox/patches/460-truncated_ping_results.patch @@ -0,0 +1,40 @@ +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 @@ + struct sockaddr_in pingaddr; + struct icmp *pkt; + int pingsock, c; +- char packet[DEFDATALEN + MAXIPLEN + MAXICMPLEN]; ++ char packet[datalen + ICMP_MINLEN + MAXIPLEN + MAXICMPLEN]; + + pingsock = create_icmp_socket(); + pingaddr = lsa->sin; +@@ -101,7 +101,7 @@ + pkt->icmp_type = ICMP_ECHO; + pkt->icmp_cksum = in_cksum((unsigned short *) pkt, sizeof(packet)); + +- c = xsendto(pingsock, packet, DEFDATALEN + ICMP_MINLEN, ++ c = xsendto(pingsock, packet, datalen + ICMP_MINLEN, + (struct sockaddr *) &pingaddr, sizeof(pingaddr)); + + /* listen for replies */ +@@ -135,7 +135,7 @@ + struct icmp6_hdr *pkt; + int pingsock, c; + int sockopt; +- char packet[DEFDATALEN + MAXIPLEN + MAXICMPLEN]; ++ char packet[datalen + ICMP_MINLEN + MAXIPLEN + MAXICMPLEN]; + + pingsock = create_icmp6_socket(); + pingaddr = lsa->sin6; +@@ -147,7 +147,7 @@ + sockopt = offsetof(struct icmp6_hdr, icmp6_cksum); + setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt)); + +- c = xsendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr), ++ c = xsendto(pingsock, packet, datalen + sizeof (struct icmp6_hdr), + (struct sockaddr *) &pingaddr, sizeof(pingaddr)); + + /* listen for replies */ |