[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH] Fix payload lengths in ping(6)
From:       "KRONSTORFER Horst" <Horst.KRONSTORFER () frequentis ! com>
Date:       2006-03-31 23:49:15
Message-ID: C5BA91F04186584EB68FD42BB4993E6B5615F4 () FRQWOLEX01 ! frequentis ! frq
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


hi!

attached patch fixes incorrect payload lengths in ping(6).

-h


[Attachment #5 (text/html)]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7638.1">
<TITLE>[PATCH] Fix payload lengths in ping(6)</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>hi!<BR>
<BR>
attached patch fixes incorrect payload lengths in ping(6).<BR>
<BR>
-h<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>
["ping.patch" (application/octet-stream)]

Index: networking/ping6.c
===================================================================
--- networking/ping6.c	(revision 14714)
+++ networking/ping6.c	(working copy)
@@ -111,7 +111,7 @@
 	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 @@
 {
 	struct icmp6_hdr *pkt;
 	int i;
-	char packet[datalen + 8];
+	char packet[datalen + sizeof (struct icmp6_hdr)];
 
 	pkt = (struct icmp6_hdr *) packet;
 
Index: networking/ping.c
===================================================================
--- networking/ping.c	(revision 14714)
+++ networking/ping.c	(working copy)
@@ -108,7 +108,7 @@
 	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 @@
 {
 	struct icmp *pkt;
 	int i;
-	char packet[datalen + sizeof(struct icmp)];
+	char packet[datalen + ICMP_MINLEN];
 
 	pkt = (struct icmp *) packet;
 


_______________________________________________
busybox mailing list
busybox@busybox.net
http://busybox.net/cgi-bin/mailman/listinfo/busybox

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic