diff options
author | Guy Harris <guy@alum.mit.edu> | 2005-10-18 10:39:23 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2005-10-18 10:39:23 +0000 |
commit | 39fb4b837835de20208df8abdac932202d667202 (patch) | |
tree | 9fdb4883623b0ca9ec8f257a75ed16cf8bb6ccf8 /wiretap/atm.c | |
parent | 6e759b47f217012eeb590c739097c5d788b9d45c (diff) |
"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
Diffstat (limited to 'wiretap/atm.c')
-rw-r--r-- | wiretap/atm.c | 8 |
1 files changed, 4 insertions, 4 deletions
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) { |