Index: ethereal/packet-bgp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-bgp.c,v
retrieving revision 1.84
diff -r1.84 packet-bgp.c
555a556
>                         case SAFNUM_MPLS_LABEL:
804a806,831
>         case SAFNUM_MPLS_LABEL:
>             plen =  tvb_get_guint8(tvb, offset);
>             labnum = decode_MPLS_stack(tvb, offset + 1, lab_stk, sizeof(lab_stk));
> 
>             offset += (1 + labnum * 3);
>             if (plen <= (labnum * 3*8)) {
>                 proto_tree_add_text(tree, tvb, start_offset, 1,
>                         "%s IPv6 prefix length %u invalid", tag, plen);
>                 return -1;
>             }
>             plen -= (labnum * 3*8);
> 
> 	    length = (plen + 7) / 8;
> 	    memset(ip6addr.u6_addr.u6_addr8, 0, 16);
> 	    tvb_memcpy(tvb, ip6addr.u6_addr.u6_addr8, offset, length);
> 	    if (plen % 8)
> 		ip6addr.u6_addr.u6_addr8[length - 1] &= ((0xff00 >> (plen % 8)) & 0xff);
> 
> 	    ti = proto_tree_add_text(tree, tvb, start_offset,
> 		 (offset + length) - start_offset,
>                  "Label Stack=%s, IP=%s/%u",
>                  lab_stk,
>                  ip6_to_str(&ip6addr), plen);
> 	    total_length = (1 + labnum * 3) + length;
> 	    break;
> 
