diff options
author | fenner <fenner@FreeBSD.org> | 2003-03-02 08:25:48 +0000 |
---|---|---|
committer | fenner <fenner@FreeBSD.org> | 2003-03-02 08:25:48 +0000 |
commit | 7171542229216f6f35b5cf4670a0b368b0203e68 (patch) | |
tree | b0f1f85975003f9af2b8eadcb34dd0fccd8153d3 /contrib/tcpdump/print-atalk.c | |
parent | af30588ecb3e2e055e5d53279a1d7fa23e246076 (diff) | |
download | FreeBSD-src-7171542229216f6f35b5cf4670a0b368b0203e68.zip FreeBSD-src-7171542229216f6f35b5cf4670a0b368b0203e68.tar.gz |
Merge tcpdump 3.7.2
Diffstat (limited to 'contrib/tcpdump/print-atalk.c')
-rw-r--r-- | contrib/tcpdump/print-atalk.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/contrib/tcpdump/print-atalk.c b/contrib/tcpdump/print-atalk.c index 9e72cbe..3b1104f 100644 --- a/contrib/tcpdump/print-atalk.c +++ b/contrib/tcpdump/print-atalk.c @@ -25,7 +25,7 @@ #ifndef lint static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/print-atalk.c,v 1.70 2001/11/15 08:23:12 itojun Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-atalk.c,v 1.70.2.1 2002/02/05 10:04:18 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -115,6 +115,14 @@ llap_print(register const u_char *bp, u_int length) u_short snet; #if 0 + /* + * Our packet is on a 4-byte boundary, as we're either called + * directly from a top-level link-layer printer (ltalk_if_print) + * or from the UDP printer. The LLAP+DDP header is a multiple + * of 4 bytes in length, so the DDP payload is also on a 4-byte + * boundary, and we don't need to align it before calling + * "ddp_print()". + */ lp = (const struct LAP *)bp; bp += sizeof(*lp); length -= sizeof(*lp); @@ -403,6 +411,11 @@ nbp_print(register const struct atNBP *np, u_int length, register u_short snet, int i; const u_char *ep; + if (length < nbpHeaderSize) { + (void)printf(" truncated-nbp %d", length); + return; + } + length -= nbpHeaderSize; if (length < 8) { /* must be room for at least one tuple */ |