aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorBernhard Dick <bernhard@bdick.de>2022-11-25 12:53:47 +0100
committerMartin Mathieson <martin.r.mathieson@googlemail.com>2022-11-28 15:04:15 +0000
commita6c6afedefc3cdc62cb979cfa8f5435d9009402c (patch)
tree1bd28d72153ea42b7ce03d5edb9baeaf9605048d /epan
parent443b0a4623f567bb87522538b9382938d51a17af (diff)
DECT-MITEL-ETH: Improve subtree len handling
Read the length for the subtree length for RFPc items at the same moment the length field is added and update the subtree's length afterwards.
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-dect-mitel-eth.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/epan/dissectors/packet-dect-mitel-eth.c b/epan/dissectors/packet-dect-mitel-eth.c
index 219bbf235d..cae0ebb6d4 100644
--- a/epan/dissectors/packet-dect-mitel-eth.c
+++ b/epan/dissectors/packet-dect-mitel-eth.c
@@ -925,13 +925,14 @@ static guint dissect_dect_mitel_eth_rfpc(tvbuff_t *tvb, packet_info *pinfo _U_,
while ( tvb_reported_length_remaining(tvb, offset) ) {
item_type = tvb_get_guint8(tvb, offset);
- item_length = tvb_get_guint8(tvb, offset + 1);
- rfpc_item_tree = proto_tree_add_subtree_format(tree, tvb, offset, item_length + 2, ett_dect_mitel_eth_rfpc_item, &rfpc_item_tree_item,
+ rfpc_item_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1, ett_dect_mitel_eth_rfpc_item, &rfpc_item_tree_item,
"Item: %s", val_to_str(item_type, dect_mitel_eth_rfpc_item_type_val, "Unknown: 0x%0x"));
proto_tree_add_item(rfpc_item_tree, hf_dect_mitel_eth_rfpc_item_type, tvb, offset, 1, ENC_NA);
offset++;
+ item_length = tvb_get_guint8(tvb, offset);
proto_tree_add_item(rfpc_item_tree, hf_dect_mitel_eth_rfpc_item_length, tvb, offset, 1, ENC_NA);
+ proto_item_set_len(rfpc_item_tree_item, item_length + 2);
offset ++;
switch (item_type) {