]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/netfilter/xt_TPROXY.c
Merge tag 'mmc-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
[karo-tx-linux.git] / net / netfilter / xt_TPROXY.c
index dbd72cc40e42f74cfa2bc8d934399198dae45371..80cb7babeb6427d5768f9e636d5d9633d46f8413 100644 (file)
@@ -531,6 +531,11 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
 static int tproxy_tg6_check(const struct xt_tgchk_param *par)
 {
        const struct ip6t_ip6 *i = par->entryinfo;
+       int err;
+
+       err = nf_defrag_ipv6_enable(par->net);
+       if (err)
+               return err;
 
        if ((i->proto == IPPROTO_TCP || i->proto == IPPROTO_UDP) &&
            !(i->invflags & IP6T_INV_PROTO))
@@ -545,6 +550,11 @@ static int tproxy_tg6_check(const struct xt_tgchk_param *par)
 static int tproxy_tg4_check(const struct xt_tgchk_param *par)
 {
        const struct ipt_ip *i = par->entryinfo;
+       int err;
+
+       err = nf_defrag_ipv4_enable(par->net);
+       if (err)
+               return err;
 
        if ((i->proto == IPPROTO_TCP || i->proto == IPPROTO_UDP)
            && !(i->invflags & IPT_INV_PROTO))
@@ -596,11 +606,6 @@ static struct xt_target tproxy_tg_reg[] __read_mostly = {
 
 static int __init tproxy_tg_init(void)
 {
-       nf_defrag_ipv4_enable();
-#ifdef XT_TPROXY_HAVE_IPV6
-       nf_defrag_ipv6_enable();
-#endif
-
        return xt_register_targets(tproxy_tg_reg, ARRAY_SIZE(tproxy_tg_reg));
 }