netfilter: nf_ct_ipv4: handle invalid IPv4 and IPv6 packets consistently
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Mon, 9 Apr 2012 14:32:16 +0000 (16:32 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 9 Apr 2012 22:38:34 +0000 (00:38 +0200)
IPv6 conntrack marked invalid packets as INVALID and let the user
drop those by an explicit rule, while IPv4 conntrack dropped such
packets itself.

IPv4 conntrack is changed so that it marks INVALID packets and let
the user to drop them.

Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c

index de9da21113a11be6c9f57b15a97b3936a574e512..750b06afd20e9ba81a9ba3c2593b49e1a4481145 100644 (file)
@@ -74,12 +74,12 @@ static int ipv4_get_l4proto(const struct sk_buff *skb, unsigned int nhoff,
 
        iph = skb_header_pointer(skb, nhoff, sizeof(_iph), &_iph);
        if (iph == NULL)
-               return -NF_DROP;
+               return -NF_ACCEPT;
 
        /* Conntrack defragments packets, we might still see fragments
         * inside ICMP packets though. */
        if (iph->frag_off & htons(IP_OFFSET))
-               return -NF_DROP;
+               return -NF_ACCEPT;
 
        *dataoff = nhoff + (iph->ihl << 2);
        *protonum = iph->protocol;