We were always interpreting an IPv6 packet as IPv4, but ipv4_is_multicast() is only valid for AF_INET (obviously). Fix this by adding an extra condition to check for AF_INET. Signed-off-by: Jan Engelhardt <jengelh@xxxxxxxxxxxxxxx> --- net/netfilter/xt_pkttype.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: linux-2.6_nosov/net/netfilter/xt_pkttype.c =================================================================== --- linux-2.6_nosov.orig/net/netfilter/xt_pkttype.c +++ linux-2.6_nosov/net/netfilter/xt_pkttype.c @@ -31,7 +31,8 @@ pkttype_mt(const struct sk_buff *skb, co const struct xt_pkttype_info *info = matchinfo; if (skb->pkt_type == PACKET_LOOPBACK) - type = ipv4_is_multicast(ip_hdr(skb)->daddr) + type = match->family == AF_INET && + ipv4_is_multicast(ip_hdr(skb)->daddr) ? PACKET_MULTICAST : PACKET_BROADCAST; else - To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html