netfilter ip6table_mangle: Use ipv6_addr_equal() where appropriate.
authorYOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@linux-ipv6.org>
Tue, 29 Jan 2013 12:48:58 +0000 (12:48 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Jan 2013 03:58:40 +0000 (22:58 -0500)
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/netfilter/ip6table_mangle.c

index 7431121b87dee6fa628f53d37dfa7f93c546a60b..6134a1ebfb1b001273e3a034a7cb9d47400b72ee 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/netfilter_ipv6/ip6_tables.h>
 #include <linux/slab.h>
+#include <net/ipv6.h>
 
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Netfilter Core Team <coreteam@netfilter.org>");
@@ -60,8 +61,8 @@ ip6t_mangle_out(struct sk_buff *skb, const struct net_device *out)
                            dev_net(out)->ipv6.ip6table_mangle);
 
        if (ret != NF_DROP && ret != NF_STOLEN &&
-           (memcmp(&ipv6_hdr(skb)->saddr, &saddr, sizeof(saddr)) ||
-            memcmp(&ipv6_hdr(skb)->daddr, &daddr, sizeof(daddr)) ||
+           (!ipv6_addr_equal(&ipv6_hdr(skb)->saddr, &saddr) ||
+            !ipv6_addr_equal(&ipv6_hdr(skb)->daddr, &daddr) ||
             skb->mark != mark ||
             ipv6_hdr(skb)->hop_limit != hop_limit ||
             flowlabel != *((u_int32_t *)ipv6_hdr(skb))))