diff options
author | Guy Harris <guy@alum.mit.edu> | 2010-02-20 22:43:19 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2010-02-20 22:43:19 -0800 |
commit | b00042a8ae3656f01e022bf6df1eb761e6323d3d (patch) | |
tree | 7cd7e32785385ca11eb096673c18cbabbd21f055 /print-ntp.c | |
parent | 599c6c53d1706ba4917e9b9fa7413db0e2eb05e4 (diff) | |
download | tcpdump-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.c | 3 |
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), |