aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-eap.c
diff options
context:
space:
mode:
authorMikael Kanstrup <mikael.kanstrup@sony.com>2020-10-19 10:40:22 +0200
committerWireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2020-10-19 10:09:41 +0000
commit279bde1a0ee19f8d0b765966af6fd84ad2c7cd4e (patch)
tree514d2c3bfe832981c147d314823814d718400e97 /epan/dissectors/packet-eap.c
parent72fbe69d9b045fe94101c676a4b765c0f1c0089b (diff)
EAP: Fix GPSK CSuite Sel dissection
The function to dissect CSuite Sel returns offset not number of dissected bytes so calling function must assign new offset rather than incrementing. For consistency also update the CSuite List function to return offset.
Diffstat (limited to 'epan/dissectors/packet-eap.c')
-rw-r--r--epan/dissectors/packet-eap.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/epan/dissectors/packet-eap.c b/epan/dissectors/packet-eap.c
index 941d2dea88..d45b72175e 100644
--- a/epan/dissectors/packet-eap.c
+++ b/epan/dissectors/packet-eap.c
@@ -1293,7 +1293,7 @@ dissect_eap_gpsk_csuite_list(proto_tree *eap_tree, tvbuff_t *tvb, int offset)
proto_tree_add_item(csuite_tree, hf_eap_gpsk_csuite_specifier, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
}
- return len;
+ return offset;
}
static gint
@@ -1413,7 +1413,7 @@ dissect_eap_gpsk(proto_tree *eap_tree, tvbuff_t *tvb, packet_info *pinfo, int of
offset += len;
proto_tree_add_item(eap_tree, hf_eap_gpsk_rand_server, tvb, offset, 32, ENC_NA);
offset += 32;
- offset += dissect_eap_gpsk_csuite_list(eap_tree, tvb, offset);
+ offset = dissect_eap_gpsk_csuite_list(eap_tree, tvb, offset);
break;
case GPSK_GPSK_2:
proto_tree_add_item_ret_uint(eap_tree, hf_eap_gpsk_id_peer_len, tvb, offset, 2, ENC_BIG_ENDIAN, &len);
@@ -1428,8 +1428,8 @@ dissect_eap_gpsk(proto_tree *eap_tree, tvbuff_t *tvb, packet_info *pinfo, int of
offset += 32;
proto_tree_add_item(eap_tree, hf_eap_gpsk_rand_server, tvb, offset, 32, ENC_NA);
offset += 32;
- offset += dissect_eap_gpsk_csuite_list(eap_tree, tvb, offset);
- offset += dissect_eap_gpsk_csuite_sel(eap_tree, tvb, offset);
+ offset = dissect_eap_gpsk_csuite_list(eap_tree, tvb, offset);
+ offset = dissect_eap_gpsk_csuite_sel(eap_tree, tvb, offset);
proto_tree_add_item_ret_uint(eap_tree, hf_eap_gpsk_pd_payload_len, tvb, offset, 2, ENC_BIG_ENDIAN, &len);
offset += 2;
if (len > 0) {
@@ -1449,7 +1449,7 @@ dissect_eap_gpsk(proto_tree *eap_tree, tvbuff_t *tvb, packet_info *pinfo, int of
offset += 2;
proto_tree_add_item(eap_tree, hf_eap_gpsk_id_server, tvb, offset, len, ENC_ASCII | ENC_NA);
offset += len;
- offset += dissect_eap_gpsk_csuite_sel(eap_tree, tvb, offset);
+ offset = dissect_eap_gpsk_csuite_sel(eap_tree, tvb, offset);
proto_tree_add_item_ret_uint(eap_tree, hf_eap_gpsk_pd_payload_len, tvb, offset, 2, ENC_BIG_ENDIAN, &len);
offset += 2;
if (len > 0) {