aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mip.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-10-09 07:24:33 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-10-09 07:24:33 +0000
commit4d2e653901ab7bb17c9ed3269a930569d8ada5eb (patch)
tree042347d5d4c01107ff02979c33de22a372f7ff69 /epan/dissectors/packet-mip.c
parent46aa5c44de5b62cc061840b29903a63bc3790445 (diff)
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
Diffstat (limited to 'epan/dissectors/packet-mip.c')
-rw-r--r--epan/dissectors/packet-mip.c12
1 files changed, 7 insertions, 5 deletions
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))