diff options
author | Richard Sharpe <realrichardsharpe@gmail.com> | 2018-02-27 17:08:50 -0800 |
---|---|---|
committer | Richard Sharpe <realrichardsharpe@gmail.com> | 2018-02-28 04:54:07 +0000 |
commit | 768488d21e0de005b61026a1d234ad52b5b632cf (patch) | |
tree | 9b5ede0dcf7b718c14478013d4dd75c5189c79e7 /epan | |
parent | 48a4ed105882684e58d01d8edb7b3ebdacf1e975 (diff) |
ieee80211: Fix handling of compressed block acks.
Thomas Derham pointed out that there was a problem with my changes
and supplied a fix. The pronblem was that I was fetching important info
after offset had moved on. This change is slightly different but works for
Thomas.
Change-Id: I45862b87f3d9626285111dab83a0067d3d529ab2
Reviewed-on: https://code.wireshark.org/review/26162
Petri-Dish: Richard Sharpe <realrichardsharpe@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Richard Sharpe <realrichardsharpe@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-ieee80211.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c index 08a6dafd86..76afc1dc9e 100644 --- a/epan/dissectors/packet-ieee80211.c +++ b/epan/dissectors/packet-ieee80211.c @@ -19247,13 +19247,12 @@ dissect_ieee80211_block_ack_details(tvbuff_t *tvb, packet_info *pinfo _U_, * depending on the values of the fragment number subfield in the * SSC! All values other that 0 and 2 in bits B1 & B2 are reserved. */ - frag_num = tvb_get_guint8(tvb, offset) & 0x0F; + ssn = tvb_get_letohs(tvb, offset); + frag_num = ssn & 0x0F; + ssn >>= 4; offset += add_ff_block_ack_ssc(ba_tree, tvb, pinfo, offset); if (!is_req) { - ssn = tvb_get_letohs(tvb, offset); - ssn >>= 4; - if ((frag_num & 0x06) == 0) { bmap = tvb_get_letoh64(tvb, offset); ba_bitmap_item = proto_tree_add_item(ba_tree, |