From 39fb4b837835de20208df8abdac932202d667202 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Tue, 18 Oct 2005 10:39:23 +0000 Subject: "aalt5_len" in the ATM pseudo-header is not guaranteed to be set to a non-zero value - it's only set from file formats that provide it in a per-packet header, and only the old DOS Sniffer did so, so it's zero for all other capture types. Instead, check the actual packet data length. Also check it against 16; 14 bytes isn't large enough for a LANE Ethernet frame. svn path=/trunk/; revision=16261 --- wiretap/atm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'wiretap/atm.c') diff --git a/wiretap/atm.c b/wiretap/atm.c index 1e7ced15d0..7882e73898 100644 --- a/wiretap/atm.c +++ b/wiretap/atm.c @@ -81,11 +81,11 @@ atm_guess_traffic_type(const guint8 *pd, guint32 len, * multiplexed RFC 1483 traffic. */ pseudo_header->atm.type = TRAF_LLCMX; - } else if (pseudo_header->atm.aal5t_len < 14) { + } else if (len < 16) { /* - * As this cannot be an ethernet frame - * (less than 14 bytes) we can try it - * as a SSCOP frame + * As this cannot be a LANE Ethernet frame (less + * than 2 bytes of LANE header + 14 bytes of + * Ethernet header) we can try it as a SSCOP frame. */ pseudo_header->atm.aal = AAL_SIGNALLING; } else if (pd[0] == 0x83 || pd[0] == 0x81) { -- cgit v1.2.3