From: Liping Zhang <zlpnob...@gmail.com>

Since there's no broadcast address in IPV6, so in ipv6 family, the
PACKET_LOOPBACK must be multicast packets, there's no need to check
it again.

Signed-off-by: Liping Zhang <zlpnob...@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pa...@netfilter.org>
---
 net/netfilter/nft_meta.c   | 5 +----
 net/netfilter/xt_pkttype.c | 3 +--
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/net/netfilter/nft_meta.c b/net/netfilter/nft_meta.c
index 66c7f4b4c49b..9a22b24346b8 100644
--- a/net/netfilter/nft_meta.c
+++ b/net/netfilter/nft_meta.c
@@ -154,10 +154,7 @@ void nft_meta_get_eval(const struct nft_expr *expr,
                                *dest = PACKET_BROADCAST;
                        break;
                case NFPROTO_IPV6:
-                       if (ipv6_hdr(skb)->daddr.s6_addr[0] == 0xFF)
-                               *dest = PACKET_MULTICAST;
-                       else
-                               *dest = PACKET_BROADCAST;
+                       *dest = PACKET_MULTICAST;
                        break;
                default:
                        WARN_ON(1);
diff --git a/net/netfilter/xt_pkttype.c b/net/netfilter/xt_pkttype.c
index 57efb703ff18..1ef99151b3ba 100644
--- a/net/netfilter/xt_pkttype.c
+++ b/net/netfilter/xt_pkttype.c
@@ -33,8 +33,7 @@ pkttype_mt(const struct sk_buff *skb, struct xt_action_param 
*par)
        else if (xt_family(par) == NFPROTO_IPV4 &&
            ipv4_is_multicast(ip_hdr(skb)->daddr))
                type = PACKET_MULTICAST;
-       else if (xt_family(par) == NFPROTO_IPV6 &&
-           ipv6_hdr(skb)->daddr.s6_addr[0] == 0xFF)
+       else if (xt_family(par) == NFPROTO_IPV6)
                type = PACKET_MULTICAST;
        else
                type = PACKET_BROADCAST;
-- 
2.1.4

Reply via email to