460-truncated_ping_results.patch 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. --- a/networking/ping.c
  2. +++ b/networking/ping.c
  3. @@ -91,7 +91,7 @@
  4. struct sockaddr_in pingaddr;
  5. struct icmp *pkt;
  6. int pingsock, c;
  7. - char packet[DEFDATALEN + MAXIPLEN + MAXICMPLEN];
  8. + char packet[datalen + ICMP_MINLEN + MAXIPLEN + MAXICMPLEN];
  9. pingsock = create_icmp_socket();
  10. pingaddr = lsa->u.sin;
  11. @@ -101,7 +101,7 @@
  12. pkt->icmp_type = ICMP_ECHO;
  13. pkt->icmp_cksum = in_cksum((unsigned short *) pkt, sizeof(packet));
  14. - c = xsendto(pingsock, packet, DEFDATALEN + ICMP_MINLEN,
  15. + c = xsendto(pingsock, packet, datalen + ICMP_MINLEN,
  16. (struct sockaddr *) &pingaddr, sizeof(pingaddr));
  17. /* listen for replies */
  18. @@ -135,7 +135,7 @@
  19. struct icmp6_hdr *pkt;
  20. int pingsock, c;
  21. int sockopt;
  22. - char packet[DEFDATALEN + MAXIPLEN + MAXICMPLEN];
  23. + char packet[datalen + ICMP_MINLEN + MAXIPLEN + MAXICMPLEN];
  24. pingsock = create_icmp6_socket();
  25. pingaddr = lsa->u.sin6;
  26. @@ -147,7 +147,7 @@
  27. sockopt = offsetof(struct icmp6_hdr, icmp6_cksum);
  28. setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt));
  29. - c = xsendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr),
  30. + c = xsendto(pingsock, packet, datalen + sizeof (struct icmp6_hdr),
  31. (struct sockaddr *) &pingaddr, sizeof(pingaddr));
  32. /* listen for replies */