summaryrefslogtreecommitdiff
path: root/print-ntp.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2010-02-20 22:43:19 -0800
committerGuy Harris <guy@alum.mit.edu>2010-02-20 22:43:19 -0800
commitb00042a8ae3656f01e022bf6df1eb761e6323d3d (patch)
tree7cd7e32785385ca11eb096673c18cbabbd21f055 /print-ntp.c
parent599c6c53d1706ba4917e9b9fa7413db0e2eb05e4 (diff)
downloadtcpdump-b00042a8ae3656f01e022bf6df1eb761e6323d3d.tar.gz
Add additional checks to make sure we don't go past the end of the packet.
Diffstat (limited to 'print-ntp.c')
-rw-r--r--print-ntp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/print-ntp.c b/print-ntp.c
index 6fc1dd0d..d56f02a2 100644
--- a/print-ntp.c
+++ b/print-ntp.c
@@ -183,9 +183,12 @@ ntp_print(register const u_char *cp, u_int length)
p_ntp_delta(&(bp->org_timestamp), &(bp->xmt_timestamp));
if ( (sizeof(struct ntpdata) - length) == 16) { /* Optional: key-id */
+ TCHECK(bp->key_id);
printf("\n\tKey id: %u", bp->key_id);
} else if ( (sizeof(struct ntpdata) - length) == 0) { /* Optional: key-id + authentication */
+ TCHECK(bp->key_id);
printf("\n\tKey id: %u", bp->key_id);
+ TCHECK2(bp->message_digest, sizeof (bp->message_digest));
printf("\n\tAuthentication: %08x%08x%08x%08x",
EXTRACT_32BITS(bp->message_digest),
EXTRACT_32BITS(bp->message_digest + 4),