summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Morriss <jeff.morriss.ws@gmail.com>2015-10-23 10:58:54 -0400
committerJeff Morriss <jeff.morriss.ws@gmail.com>2015-10-25 02:25:28 +0000
commit3b42eabd77a132ff7503af3b0eb7daed82ca700c (patch)
tree03fbb2d6b9e88adf688a09b4182c1245e090f221
parentfcdb06190a7cff2c078ddebfe0d1d2d2d5b10630 (diff)
downloadwireshark-3b42eabd77a132ff7503af3b0eb7daed82ca700c.tar.gz
802.1ah: call subdissectors even when we have no tree.
Otherwise none of the subdissectors are called on the first pass which means none of their analysis (which is generally done on the first pass) is going to work. Bug: 11629 Change-Id: I6fe8d0692e5cf6f5b5fa099d31a91d01cc5c7c68 Reviewed-on: https://code.wireshark.org/review/11226 Petri-Dish: Jeff Morriss <jeff.morriss.ws@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net> (cherry picked from commit ae130f114cd61443c8c93e1c9280e027726a0235) Conflicts: epan/dissectors/packet-ieee8021ah.c Reviewed-on: https://code.wireshark.org/review/11255 Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
-rw-r--r--epan/dissectors/packet-ieee8021ah.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/epan/dissectors/packet-ieee8021ah.c b/epan/dissectors/packet-ieee8021ah.c
index 91fc430b68..48e4d70d9e 100644
--- a/epan/dissectors/packet-ieee8021ah.c
+++ b/epan/dissectors/packet-ieee8021ah.c
@@ -312,8 +312,8 @@ void
dissect_ieee8021ah(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree)
{
- proto_tree *ptree;
- guint32 tci;
+ proto_item *pi;
+ guint32 tci;
proto_tree *volatile ieee8021ah_tree;
int proto_tree_index;
@@ -331,14 +331,13 @@ dissect_ieee8021ah(tvbuff_t *tvb, packet_info *pinfo,
(tci >> 29), ((tci >> 28) & 1), ((tci >> 27) & 1),
((tci >> 26) & 1), ((tci >> 24) & 3), (tci & 0x00FFFFFF));
- /* create the protocol tree */
- ieee8021ah_tree = NULL;
-
- if (tree) {
- ptree = proto_tree_add_item(tree, proto_tree_index, tvb, 0, IEEE8021AH_LEN, ENC_NA);
- ieee8021ah_tree = proto_item_add_subtree(ptree, ett_ieee8021ah);
+ pi = proto_tree_add_item(tree, proto_tree_index, tvb, 0, IEEE8021AH_LEN, ENC_NA);
+ ieee8021ah_tree = proto_item_add_subtree(pi, ett_ieee8021ah);
- dissect_ieee8021ah_common(tvb, pinfo, ieee8021ah_tree, tree, proto_tree_index);
+ if (ieee8021ah_tree) {
+ dissect_ieee8021ah_common(tvb, pinfo, ieee8021ah_tree, tree, proto_tree_index);
+ } else {
+ dissect_ieee8021ah_common(tvb, pinfo, tree, NULL, proto_tree_index);
}
}