diff options
author | Gerald Combs <gerald@wireshark.org> | 2010-10-14 18:09:57 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2010-10-14 18:09:57 +0000 |
commit | dc46e7db50f8ef61085efa8683a176dcf2be2cf2 (patch) | |
tree | aaa15136896708c6161ba3d5efec467a0da9aa40 /epan/dissectors/packet-radiotap.c | |
parent | ea4ca0524b1a48393a74ea124455dc24d5726116 (diff) |
Tighten up our data rate check. This should fix bug 5280 (mostly).
svn path=/trunk/; revision=34516
Diffstat (limited to 'epan/dissectors/packet-radiotap.c')
-rw-r--r-- | epan/dissectors/packet-radiotap.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/epan/dissectors/packet-radiotap.c b/epan/dissectors/packet-radiotap.c index f9b7f40ad8..4a00786e5d 100644 --- a/epan/dissectors/packet-radiotap.c +++ b/epan/dissectors/packet-radiotap.c @@ -1126,7 +1126,13 @@ dissect_radiotap(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) case IEEE80211_RADIOTAP_RATE: rate = tvb_get_guint8(tvb, offset); - if (rate & 0x80) { + /* + * XXX On FreeBSD rate & 0x80 means we have an MCS. On + * Linux and AirPcap it does not. If the check below + * doesn't work we may have to add a rate interpretation + * preference. + */ + if (rate >= 0x80 && rate <= 0x8f) { /* XXX adjust by CW and short GI like other sniffers? */ rate = ieee80211_htrates[rate & 0xf]; } |