[PATCH] ping: explicitly set ICMP code to zero
Vít Labuda
dev at vitlabuda.cz
Sun Jan 1 16:23:40 UTC 2023
The 'code' field in ICMPv4 and ICMPv6 echo messages didn't use to
be explicitly set to zero, which resulted in malformed ping packets
(with incorrect code) being generated in case a custom payload
pattern was set using the '-p' command line option.
---
networking/ping.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/networking/ping.c b/networking/ping.c
index 9805695a1..1c387353f 100644
--- a/networking/ping.c
+++ b/networking/ping.c
@@ -563,7 +563,7 @@ static void sendping4(int junk UNUSED_PARAM)
memset(pkt, G.pattern, datalen + ICMP_MINLEN + 4);
pkt->icmp_type = ICMP_ECHO;
- /*pkt->icmp_code = 0;*/
+ pkt->icmp_code = 0;
pkt->icmp_cksum = 0; /* cksum is calculated with this field set to 0 */
pkt->icmp_seq = htons(G.ntransmitted); /* don't ++ here, it can be a macro */
pkt->icmp_id = myid;
@@ -586,7 +586,7 @@ static void sendping6(int junk UNUSED_PARAM)
memset(pkt, G.pattern, datalen + sizeof(struct icmp6_hdr) + 4);
pkt->icmp6_type = ICMP6_ECHO_REQUEST;
- /*pkt->icmp6_code = 0;*/
+ pkt->icmp6_code = 0;
/*pkt->icmp6_cksum = 0;*/
pkt->icmp6_seq = htons(G.ntransmitted); /* don't ++ here, it can be a macro */
pkt->icmp6_id = myid;
--
2.38.1
More information about the busybox
mailing list