From Roy Marples:
authorjake <jake@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 12 Dec 2011 08:18:18 +0000 (08:18 +0000)
committerjake <jake@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 12 Dec 2011 08:18:18 +0000 (08:18 +0000)
ICMPv6 DNSSL option can contain padding, which does not represent a malformed option.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@40159 f5534014-38df-0310-8fa8-9805f1628bb7

epan/dissectors/packet-icmpv6.c

index 771aa967bf3e1b1a072180752cbf35316e81c6b3..06f3442eec10782ab5aaf01355fd432a4d4b09f0 100644 (file)
@@ -1976,7 +1976,11 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
                 opt_offset += 4;
                 while(opt_offset < (offset + opt_len) ) {
 
-                    if(tvb_get_guint8(tvb, opt_offset) == 0){ /* if Zero there is padding, skip the loop */
+                    if(tvb_get_guint8(tvb, opt_offset) == 0){
+                        /* Padding... */
+                        int padd_length = (offset + opt_len) - opt_offset;
+                        proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_padding, tvb, opt_offset, padd_length, FALSE);
+                        opt_offset += padd_length;
                         break;
                     }
                     dnssl_len = get_dns_name(tvb, opt_offset, 0, opt_offset, &dnssl_name);