diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-10-09 07:24:33 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-10-09 07:24:33 +0000 |
commit | f53596396116d9cfb0f062c7c7704b36674483f0 (patch) | |
tree | 042347d5d4c01107ff02979c33de22a372f7ff69 /epan/dissectors/packet-mip.c | |
parent | 5f7191b2fc53f43a80f66a73847e404f05e0f3a8 (diff) |
From Didier Gautheron:
Dissectors using call_dissector() function inside a 'if (tree) {}' block.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4107
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@30415 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-mip.c')
-rw-r--r-- | epan/dissectors/packet-mip.c | 12 |
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)) |