netfilter: nf_conntrack: fix BUG_ON while removing nf_conntrack with netns
authorPablo Neira Ayuso <pablo@netfilter.org>
Thu, 10 Jan 2013 15:12:01 +0000 (16:12 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Feb 2013 00:27:08 +0000 (18:27 -0600)
commitdb091405c3222a00987d546f8758cb33ad9649c7
tree7fbc848177876dfb1023bb67d3af11569792adaf
parent99740d8bf1a78bcfd85072d2396847488a565b68
netfilter: nf_conntrack: fix BUG_ON while removing nf_conntrack with netns

commit 1e47ee8367babe6a5e8adf44a714c7086657b87e upstream.

canqun zhang reported that we're hitting BUG_ON in the
nf_conntrack_destroy path when calling kfree_skb while
rmmod'ing the nf_conntrack module.

Currently, the nf_ct_destroy hook is being set to NULL in the
destroy path of conntrack.init_net. However, this is a problem
since init_net may be destroyed before any other existing netns
(we cannot assume any specific ordering while releasing existing
netns according to what I read in recent emails).

Thanks to Gao feng for initial patch to address this issue.

Reported-by: canqun zhang <canqunzhang@gmail.com>
Acked-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/net/netfilter/nf_conntrack_core.h
net/netfilter/nf_conntrack_core.c
net/netfilter/nf_conntrack_standalone.c