aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2018-12-05 20:19:53 +0100
committerAnders Broman <a.broman58@gmail.com>2018-12-06 11:21:57 +0000
commitd89cdf76615807747ab21b8788b6a149157e2192 (patch)
tree382721c57a62afeb13dfa75f363219430edabed1
parentb455d8fceefb543ace0e2c5729607326417db7c8 (diff)
packet-rsl: Fix parsing values of some IE in ip.access specific messages
Those IEs have specific dissect methods that expect offset to point to the IE type, not to its value. Furthermore, those methods already add a subtree, so no need to create it for them. Related: https://osmocom.org/issues/3705 Change-Id: Ia63253b95678b799f59ed945d1381f4eb01be636 Reviewed-on: https://code.wireshark.org/review/30931 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/packet-rsl.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/epan/dissectors/packet-rsl.c b/epan/dissectors/packet-rsl.c
index 18e81edeec..ac3e921f82 100644
--- a/epan/dissectors/packet-rsl.c
+++ b/epan/dissectors/packet-rsl.c
@@ -3447,20 +3447,25 @@ dissct_rsl_ipaccess_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
return tvb_reported_length(tvb);
}
- ti = proto_tree_add_item(tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
- ie_tree = proto_item_add_subtree(ti, ett_ie_local_port);
- offset += hlen;
switch (tag) {
case RSL_IE_CH_NO:
- dissect_rsl_ie_ch_no(tvb, pinfo, ie_tree, offset, FALSE);
+ dissect_rsl_ie_ch_no(tvb, pinfo, tree, offset, FALSE);
break;
case RSL_IE_FRAME_NO:
- dissect_rsl_ie_frame_no(tvb, pinfo, ie_tree, offset, FALSE);
+ dissect_rsl_ie_frame_no(tvb, pinfo, tree, offset, FALSE);
break;
case RSL_IE_MS_POW:
- dissect_rsl_ie_ms_pow(tvb, pinfo, ie_tree, offset, FALSE);
+ dissect_rsl_ie_ms_pow(tvb, pinfo, tree, offset, FALSE);
break;
+ default:
+ ti = proto_tree_add_item(tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
+ ie_tree = proto_item_add_subtree(ti, ett_ie_local_port);
+ }
+
+ offset += hlen;
+
+ switch (tag) {
case RSL_IE_IPAC_REMOTE_IP:
proto_tree_add_item(ie_tree, hf_rsl_remote_ip, tvb,
offset, len, ENC_BIG_ENDIAN);