aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/nfnetlink_queue.c
diff options
context:
space:
mode:
authorVasily Averin <vvs@virtuozzo.com>2017-11-12 14:32:37 +0300
committerPablo Neira Ayuso <pablo@netfilter.org>2017-11-20 12:03:41 +0100
commit613d0776d3fe7eb28c695a63a5533a1ec8258c86 (patch)
tree08d9707ea53ccf351385ada525aeb3f250ccb6fd /net/netfilter/nfnetlink_queue.c
parentnetfilter: remove redundant assignment to e (diff)
downloadlinux-dev-613d0776d3fe7eb28c695a63a5533a1ec8258c86.tar.xz
linux-dev-613d0776d3fe7eb28c695a63a5533a1ec8258c86.zip
netfilter: exit_net cleanup check added
Be sure that lists initialized in net_init hook was return to initial state. Signed-off-by: Vasily Averin <vvs@virtuozzo.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter/nfnetlink_queue.c')
-rw-r--r--net/netfilter/nfnetlink_queue.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c
index a16356cacec3..c09b36755ed7 100644
--- a/net/netfilter/nfnetlink_queue.c
+++ b/net/netfilter/nfnetlink_queue.c
@@ -1512,10 +1512,15 @@ static int __net_init nfnl_queue_net_init(struct net *net)
static void __net_exit nfnl_queue_net_exit(struct net *net)
{
+ struct nfnl_queue_net *q = nfnl_queue_pernet(net);
+ unsigned int i;
+
nf_unregister_queue_handler(net);
#ifdef CONFIG_PROC_FS
remove_proc_entry("nfnetlink_queue", net->nf.proc_netfilter);
#endif
+ for (i = 0; i < INSTANCE_BUCKETS; i++)
+ WARN_ON_ONCE(!hlist_empty(&q->instance_table[i]));
}
static void nfnl_queue_net_exit_batch(struct list_head *net_exit_list)