diff options
author | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2015-11-28 22:53:51 +0000 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2015-11-29 10:58:43 +0000 |
commit | 7adf696a0ea438993d34521bb6214ce2ee82bd7f (patch) | |
tree | 8df8f97f12d4173f28cf3956f17f5977ec6b753c | |
parent | 5d20997a35226fab09b87699fa7e6a30bf26ffd1 (diff) | |
download | wireshark-7adf696a0ea438993d34521bb6214ce2ee82bd7f.tar.gz |
IPv6: Fix RPL routing header computed address count if ip6r_len == 0
Bug: 11803
Change-Id: I6de6a240dee1cfb310c41976853c0c3683b0b80a
Reviewed-on: https://code.wireshark.org/review/12277
Reviewed-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
-rw-r--r-- | epan/dissectors/packet-ipv6.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c index 7106ffed72..a9aee10fc0 100644 --- a/epan/dissectors/packet-ipv6.c +++ b/epan/dissectors/packet-ipv6.c @@ -787,7 +787,10 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data /* from RFC6554: n = (((Hdr Ext Len * 8) - Pad - (16 - CmprE)) / (16 - CmprI)) + 1 */ - segments = (((rt.ip6r_len * 8) - pad - (16 - cmprE)) / (16 - cmprI)) + 1; + segments = 0; + if (rt.ip6r_len > 0) { + segments = (((rt.ip6r_len * 8) - pad - (16 - cmprE)) / (16 - cmprI)) + 1; + } ti = proto_tree_add_int(rthdr_tree, hf_ipv6_routing_hdr_rpl_segments, tvb, offset, 2, segments); PROTO_ITEM_SET_GENERATED(ti); |