summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/print-atalk.c
diff options
context:
space:
mode:
authorfenner <fenner@FreeBSD.org>2003-03-02 08:25:48 +0000
committerfenner <fenner@FreeBSD.org>2003-03-02 08:25:48 +0000
commit7171542229216f6f35b5cf4670a0b368b0203e68 (patch)
treeb0f1f85975003f9af2b8eadcb34dd0fccd8153d3 /contrib/tcpdump/print-atalk.c
parentaf30588ecb3e2e055e5d53279a1d7fa23e246076 (diff)
downloadFreeBSD-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.c15
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 */
OpenPOWER on IntegriCloud