netfilter: remove forward module param confusion.
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 22 Mar 2012 12:27:06 +0000 (12:27 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 23 Mar 2012 02:36:17 +0000 (22:36 -0400)
It used to be an int, and it got changed to a bool parameter at least
7 years ago.  It happens that NF_ACCEPT and NF_DROP are 0 and 1, so
this works, but it's unclear, and the check that it's in range is not
required.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/netfilter/iptable_filter.c
net/ipv6/netfilter/ip6table_filter.c

index 0e58f09..851acec 100644 (file)
@@ -52,7 +52,7 @@ iptable_filter_hook(unsigned int hook, struct sk_buff *skb,
 static struct nf_hook_ops *filter_ops __read_mostly;
 
 /* Default to forward because I got too much mail already. */
-static bool forward = NF_ACCEPT;
+static bool forward = true;
 module_param(forward, bool, 0000);
 
 static int __net_init iptable_filter_net_init(struct net *net)
@@ -64,7 +64,7 @@ static int __net_init iptable_filter_net_init(struct net *net)
                return -ENOMEM;
        /* Entry 1 is the FORWARD hook */
        ((struct ipt_standard *)repl->entries)[1].target.verdict =
-               -forward - 1;
+               forward ? -NF_ACCEPT - 1 : -NF_DROP - 1;
 
        net->ipv4.iptable_filter =
                ipt_register_table(net, &packet_filter, repl);
@@ -88,11 +88,6 @@ static int __init iptable_filter_init(void)
 {
        int ret;
 
-       if (forward < 0 || forward > NF_MAX_VERDICT) {
-               pr_err("iptables forward must be 0 or 1\n");
-               return -EINVAL;
-       }
-
        ret = register_pernet_subsys(&iptable_filter_net_ops);
        if (ret < 0)
                return ret;
index a8f6da9..325e59a 100644 (file)
@@ -44,7 +44,7 @@ ip6table_filter_hook(unsigned int hook, struct sk_buff *skb,
 static struct nf_hook_ops *filter_ops __read_mostly;
 
 /* Default to forward because I got too much mail already. */
-static bool forward = NF_ACCEPT;
+static bool forward = true;
 module_param(forward, bool, 0000);
 
 static int __net_init ip6table_filter_net_init(struct net *net)
@@ -56,7 +56,7 @@ static int __net_init ip6table_filter_net_init(struct net *net)
                return -ENOMEM;
        /* Entry 1 is the FORWARD hook */
        ((struct ip6t_standard *)repl->entries)[1].target.verdict =
-               -forward - 1;
+               forward ? -NF_ACCEPT - 1 : -NF_DROP - 1;
 
        net->ipv6.ip6table_filter =
                ip6t_register_table(net, &packet_filter, repl);
@@ -80,11 +80,6 @@ static int __init ip6table_filter_init(void)
 {
        int ret;
 
-       if (forward < 0 || forward > NF_MAX_VERDICT) {
-               pr_err("iptables forward must be 0 or 1\n");
-               return -EINVAL;
-       }
-
        ret = register_pernet_subsys(&ip6table_filter_net_ops);
        if (ret < 0)
                return ret;