aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorRichard Sharpe <realrichardsharpe@gmail.com>2018-02-27 17:08:50 -0800
committerRichard Sharpe <realrichardsharpe@gmail.com>2018-02-28 04:54:07 +0000
commit768488d21e0de005b61026a1d234ad52b5b632cf (patch)
tree9b5ede0dcf7b718c14478013d4dd75c5189c79e7 /epan
parent48a4ed105882684e58d01d8edb7b3ebdacf1e975 (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.c7
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,