diff options
author | cmaynard <cmaynard@f5534014-38df-0310-8fa8-9805f1628bb7> | 2011-12-03 04:07:20 +0000 |
---|---|---|
committer | cmaynard <cmaynard@f5534014-38df-0310-8fa8-9805f1628bb7> | 2011-12-03 04:07:20 +0000 |
commit | f390b6e0ff4860522e87d008bba65da44dee4ac9 (patch) | |
tree | e09ba16b82e2bee38e749ce6a97a521d75cb9c57 | |
parent | 5d34a0856b94331c95e9d0aa5aa7384825c90a9f (diff) |
If a type 2 Mobile IP routing header is present, only set pinfo->dst if seg_left is non-zero. Fixes https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6560
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@40076 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r-- | epan/dissectors/packet-ipv6.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c index c8e5f163b1..b12459f274 100644 --- a/epan/dissectors/packet-ipv6.c +++ b/epan/dissectors/packet-ipv6.c @@ -620,7 +620,8 @@ dissect_routing6(tvbuff_t *tvb, int offset, proto_tree *tree, packet_info *pinfo if (rt.ip6r_type == IPv6_RT_HEADER_MobileIP) { proto_tree_add_item(rthdr_tree, hf_ipv6_mipv6_home_address, tvb, offset + 8, 16, ENC_NA); - SET_ADDRESS(&pinfo->dst, AT_IPv6, 16, tvb_get_ptr(tvb, offset + 8, 16)); + if (seg_left) + SET_ADDRESS(&pinfo->dst, AT_IPv6, 16, tvb_get_ptr(tvb, offset + 8, 16)); } if (rt.ip6r_type == IPv6_RT_HEADER_RPL) { guint8 cmprI; |