From 4d2e653901ab7bb17c9ed3269a930569d8ada5eb Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Fri, 9 Oct 2009 07:24:33 +0000 Subject: From Didier Gautheron: Dissectors using call_dissector() function inside a 'if (tree) {}' block. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4107 svn path=/trunk/; revision=30415 --- epan/dissectors/packet-mip.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'epan/dissectors/packet-mip.c') diff --git a/epan/dissectors/packet-mip.c b/epan/dissectors/packet-mip.c index ca1d61487b..b30a090ff8 100644 --- a/epan/dissectors/packet-mip.c +++ b/epan/dissectors/packet-mip.c @@ -696,12 +696,14 @@ dissect_mip( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* reserved */ proto_tree_add_item(mip_tree, hf_mip_nattt_reserved, tvb, offset, 2, FALSE); offset += 2; - - /* encapsulated payload */ - next_tvb = tvb_new_subset_remaining(tvb, 4); - call_dissector(ip_handle, next_tvb, pinfo, mip_tree); - offset += tvb_reported_length_remaining(tvb, offset); } /* if tree */ + else { + offset += 4; + } + /* encapsulated payload */ + next_tvb = tvb_new_subset_remaining(tvb, 4); + call_dissector(ip_handle, next_tvb, pinfo, mip_tree); + offset += tvb_reported_length_remaining(tvb, offset); break; case REGISTRATION_REVOCATION: if (check_col(pinfo->cinfo, COL_INFO)) -- cgit v1.2.3