aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/atm.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2005-10-18 10:39:23 +0000
committerGuy Harris <guy@alum.mit.edu>2005-10-18 10:39:23 +0000
commit39fb4b837835de20208df8abdac932202d667202 (patch)
tree9fdb4883623b0ca9ec8f257a75ed16cf8bb6ccf8 /wiretap/atm.c
parent6e759b47f217012eeb590c739097c5d788b9d45c (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.c8
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) {