aboutsummaryrefslogtreecommitdiff
path: root/networking/ping.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-04-29 12:31:53 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-04-29 12:31:53 +0000
commitb34266b42b5f6f78b7346c9ca90caebcd59db345 (patch)
tree4e040efe40ba8f35415eb4d3f4bf64ca20274956 /networking/ping.c
parenta0c103a30a96e20794630c5daa4aad5926a151f2 (diff)
downloadbusybox-w32-b34266b42b5f6f78b7346c9ca90caebcd59db345.tar.gz
busybox-w32-b34266b42b5f6f78b7346c9ca90caebcd59db345.tar.bz2
busybox-w32-b34266b42b5f6f78b7346c9ca90caebcd59db345.zip
ping: dont leak uninitialized data in ping packets
function old new delta sendping4 176 186 +10 sendping6 93 100 +7
Diffstat (limited to 'networking/ping.c')
-rw-r--r--networking/ping.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/networking/ping.c b/networking/ping.c
index 299148641..c3a71071c 100644
--- a/networking/ping.c
+++ b/networking/ping.c
@@ -372,9 +372,10 @@ static void sendping4(int junk ATTRIBUTE_UNUSED)
372 * *after* packet. Saves one if() */ 372 * *after* packet. Saves one if() */
373 struct icmp *pkt = alloca(datalen + ICMP_MINLEN + 4); 373 struct icmp *pkt = alloca(datalen + ICMP_MINLEN + 4);
374 374
375 memset(pkt, 0, datalen + ICMP_MINLEN + 4);
375 pkt->icmp_type = ICMP_ECHO; 376 pkt->icmp_type = ICMP_ECHO;
376 pkt->icmp_code = 0; 377 /*pkt->icmp_code = 0;*/
377 pkt->icmp_cksum = 0; 378 /*pkt->icmp_cksum = 0;*/
378 pkt->icmp_seq = htons(ntransmitted); /* don't ++ here, it can be a macro */ 379 pkt->icmp_seq = htons(ntransmitted); /* don't ++ here, it can be a macro */
379 pkt->icmp_id = myid; 380 pkt->icmp_id = myid;
380 381
@@ -391,9 +392,10 @@ static void sendping6(int junk ATTRIBUTE_UNUSED)
391{ 392{
392 struct icmp6_hdr *pkt = alloca(datalen + sizeof(struct icmp6_hdr) + 4); 393 struct icmp6_hdr *pkt = alloca(datalen + sizeof(struct icmp6_hdr) + 4);
393 394
395 memset(pkt, 0, datalen + sizeof(struct icmp6_hdr) + 4);
394 pkt->icmp6_type = ICMP6_ECHO_REQUEST; 396 pkt->icmp6_type = ICMP6_ECHO_REQUEST;
395 pkt->icmp6_code = 0; 397 /*pkt->icmp6_code = 0;*/
396 pkt->icmp6_cksum = 0; 398 /*pkt->icmp6_cksum = 0;*/
397 pkt->icmp6_seq = htons(ntransmitted); /* don't ++ here, it can be a macro */ 399 pkt->icmp6_seq = htons(ntransmitted); /* don't ++ here, it can be a macro */
398 pkt->icmp6_id = myid; 400 pkt->icmp6_id = myid;
399 401