aboutsummaryrefslogtreecommitdiff
path: root/sbin/ping/ping.c
diff options
context:
space:
mode:
authorMaxim Konovalov <maxim@FreeBSD.org>2003-04-14 08:34:14 +0000
committerMaxim Konovalov <maxim@FreeBSD.org>2003-04-14 08:34:14 +0000
commit29dccd6ae105f3999712b5defee8b2a08a7e4f5a (patch)
treefdd4e412161fd7e295b8afaeda44479eb0ff76f5 /sbin/ping/ping.c
parent2f912fc9763aff4b8b8ec1f4ac492474c4014419 (diff)
downloadsrc-29dccd6ae105f3999712b5defee8b2a08a7e4f5a.tar.gz
src-29dccd6ae105f3999712b5defee8b2a08a7e4f5a.zip
o Skip timestamp part when checking payload.
PR: bin/50909 Submitted by: Barney Wolff <barney@lab.databus.com>
Notes
Notes: svn path=/head/; revision=113463
Diffstat (limited to 'sbin/ping/ping.c')
-rw-r--r--sbin/ping/ping.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c
index 1660760ffeb0..a6650482ed98 100644
--- a/sbin/ping/ping.c
+++ b/sbin/ping/ping.c
@@ -1012,8 +1012,14 @@ pr_pack(buf, cc, from, tv)
cp = (u_char*)&icp->icmp_data[phdr_len];
dp = &outpack[MINICMPLEN + phdr_len];
cc -= ICMP_MINLEN + phdr_len;
- for (i = phdr_len; i < datalen && cc != 0;
- ++i, ++cp, ++dp, cc--) {
+ i = 0;
+ if (timing) { /* don't check variable timestamp */
+ cp += TIMEVAL_LEN;
+ dp += TIMEVAL_LEN;
+ cc -= TIMEVAL_LEN;
+ i += TIMEVAL_LEN;
+ }
+ for (; i < datalen && cc > 0; ++i, ++cp, ++dp, --cc) {
if (*cp != *dp) {
(void)printf("\nwrong data byte #%d should be 0x%x but was 0x%x",
i, *dp, *cp);