diff options
-rw-r--r-- | epan/dissectors/packet-ieee80211.c | 7 | ||||
-rw-r--r-- | wiretap/netmon.c | 11 |
2 files changed, 12 insertions, 6 deletions
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c index 0d475e591c..7853e0f5b6 100644 --- a/epan/dissectors/packet-ieee80211.c +++ b/epan/dissectors/packet-ieee80211.c @@ -16658,11 +16658,12 @@ dissect_ieee80211_common (tvbuff_t *tvb, packet_info *pinfo, has_fcs = TRUE; break; - case -2: /* Data frames have no FCS, other frames have an FCS */ + case -2: /* Data frames have no FCS, other frames may have an FCS */ + /* XXX: -2 currently used only in wiretap/netmon.c */ if (FCF_FRAME_TYPE (fcf) == DATA_FRAME) has_fcs = FALSE; - else - has_fcs = TRUE; + else /* Management, Control, Extension */ + has_fcs = wlan_check_fcs; break; default: /* Don't know - use "wlan_check_fcs" */ diff --git a/wiretap/netmon.c b/wiretap/netmon.c index dc959f5ab8..9a4ad1e999 100644 --- a/wiretap/netmon.c +++ b/wiretap/netmon.c @@ -419,9 +419,14 @@ netmon_set_pseudo_header_info(struct wtap_pkthdr *phdr, Buffer *buf) case WTAP_ENCAP_IEEE_802_11_NETMON: /* * It appears to be the case that management - * frames have an FCS and data frames don't; - * I'm not sure about control frames. An - * "FCS length" of -2 means "NetMon weirdness". + * frames (and control and extension frames ?) may + * or may not have an FCS and data frames don't. + * (Netmon capture files have been seen for this + * encapsulation having management frames either + * completely with or without an FCS. Also: instances have been + * seen where both Management and Control frames + * do not have an FCS). + * An "FCS length" of -2 means "NetMon weirdness". */ phdr->pseudo_header.ieee_802_11.presence_flags = 0; /* radio data is in the packet data */ phdr->pseudo_header.ieee_802_11.fcs_len = -2; |