diff options
author | Mikael Kanstrup <mikael.kanstrup@sony.com> | 2020-10-19 10:40:22 +0200 |
---|---|---|
committer | Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org> | 2020-10-19 10:09:41 +0000 |
commit | 279bde1a0ee19f8d0b765966af6fd84ad2c7cd4e (patch) | |
tree | 514d2c3bfe832981c147d314823814d718400e97 /epan/dissectors/packet-eap.c | |
parent | 72fbe69d9b045fe94101c676a4b765c0f1c0089b (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.c | 10 |
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) { |