diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2013-04-07 15:57:20 +0000 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2013-04-07 15:57:20 +0000 |
commit | b7844a673bb06e4f098139e1906db0b09e6d0fd6 (patch) | |
tree | 15681f800dd937ec4c2e401e40fbbd2fac5f27d7 /epan/dissectors/packet-ieee80211.c | |
parent | 8576eb409f8f6ea554f6bd89a9dc846a5338049e (diff) |
From report of Mark Phillips via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8561 802.11 QoS decode broken from 1.9.2
Wrong encoding type (ENC_BIG_ENDIAN => ENC_LITTLE_ENDIAN)
Also fix a wrong increment offset about TXOP
svn path=/trunk/; revision=48769
Diffstat (limited to 'epan/dissectors/packet-ieee80211.c')
-rw-r--r-- | epan/dissectors/packet-ieee80211.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c index 9638e4d962..3e71583868 100644 --- a/epan/dissectors/packet-ieee80211.c +++ b/epan/dissectors/packet-ieee80211.c @@ -12916,33 +12916,33 @@ dissect_ieee80211_common (tvbuff_t *tvb, packet_info *pinfo, guint16 qos_eosp; guint16 qos_field_content; - qos_fields = proto_tree_add_item(hdr_tree, hf_ieee80211_qos, tvb, qosoff, 2, ENC_BIG_ENDIAN); + qos_fields = proto_tree_add_item(hdr_tree, hf_ieee80211_qos, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); qos_tree = proto_item_add_subtree (qos_fields, ett_qos_parameters); qos_eosp = QOS_EOSP(qos_control); qos_field_content = QOS_FIELD_CONTENT(qos_control); - proto_tree_add_item(qos_tree, hf_ieee80211_qos_tid, tvb, qosoff, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(qos_tree, hf_ieee80211_qos_tid, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); - qos_ti = proto_tree_add_item(qos_tree, hf_ieee80211_qos_priority, tvb, qosoff, 2, ENC_BIG_ENDIAN); + qos_ti = proto_tree_add_item(qos_tree, hf_ieee80211_qos_priority, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); PROTO_ITEM_SET_GENERATED(qos_ti); if (flags & FLAG_FROM_DS) { - proto_tree_add_item(qos_tree, hf_ieee80211_qos_eosp, tvb, qosoff, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(qos_tree, hf_ieee80211_qos_eosp, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); } else { - proto_tree_add_item(qos_tree, hf_ieee80211_qos_bit4, tvb, qosoff, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(qos_tree, hf_ieee80211_qos_bit4, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); } - proto_tree_add_item(qos_tree, hf_ieee80211_qos_ack_policy, tvb, qosoff, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(qos_tree, hf_ieee80211_qos_ack_policy, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); if (flags & FLAG_FROM_DS) { if (!DATA_FRAME_IS_NULL(frame_type_subtype)) { - proto_tree_add_item(qos_tree, hf_ieee80211_qos_amsdu_present, tvb, qosoff, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(qos_tree, hf_ieee80211_qos_amsdu_present, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); is_amsdu = QOS_AMSDU_PRESENT(qos_control); } if (DATA_FRAME_IS_CF_POLL(frame_type_subtype)) { /* txop limit */ - qos_ti = proto_tree_add_item(qos_tree, hf_ieee80211_qos_txop_limit, tvb, qosoff, 2, ENC_BIG_ENDIAN); + qos_ti = proto_tree_add_item(qos_tree, hf_ieee80211_qos_txop_limit, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); if (qos_field_content == 0) { proto_item_append_text(qos_ti, " (transmit one frame immediately)"); } @@ -12978,12 +12978,12 @@ dissect_ieee80211_common (tvbuff_t *tvb, packet_info *pinfo, } } else { if (!DATA_FRAME_IS_NULL(frame_type_subtype)) { - proto_tree_add_item(qos_tree, hf_ieee80211_qos_amsdu_present, tvb, qosoff, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(qos_tree, hf_ieee80211_qos_amsdu_present, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); is_amsdu = QOS_AMSDU_PRESENT(qos_control); } if (qos_eosp) { /* queue size */ - qos_ti = proto_tree_add_item(qos_tree, hf_ieee80211_qos_queue_size, tvb, qosoff, 2, ENC_BIG_ENDIAN); + qos_ti = proto_tree_add_item(qos_tree, hf_ieee80211_qos_queue_size, tvb, qosoff, 2, ENC_LITTLE_ENDIAN); switch (qos_field_content) { case 0: proto_item_append_text(qos_ti, " (no buffered traffic in the queue)"); @@ -13004,7 +13004,7 @@ dissect_ieee80211_common (tvbuff_t *tvb, packet_info *pinfo, } else { /* txop duration requested */ qos_ti = proto_tree_add_item(qos_tree, hf_ieee80211_qos_txop_dur_req, - tvb, qosoff + 1, 2, ENC_BIG_ENDIAN); + tvb, qosoff, 2, ENC_LITTLE_ENDIAN); if (qos_field_content == 0) { proto_item_append_text(qos_ti, " (no TXOP requested)"); } |