summaryrefslogtreecommitdiffstats
path: root/net/netfilter/nf_tables_api.c
diff options
context:
space:
mode:
authorVasily Averin2017-11-12 12:32:37 +0100
committerPablo Neira Ayuso2017-11-20 12:03:41 +0100
commit613d0776d3fe7eb28c695a63a5533a1ec8258c86 (patch)
tree08d9707ea53ccf351385ada525aeb3f250ccb6fd /net/netfilter/nf_tables_api.c
parentnetfilter: remove redundant assignment to e (diff)
downloadkernel-qcow2-linux-613d0776d3fe7eb28c695a63a5533a1ec8258c86.tar.gz
kernel-qcow2-linux-613d0776d3fe7eb28c695a63a5533a1ec8258c86.tar.xz
kernel-qcow2-linux-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/nf_tables_api.c')
-rw-r--r--net/netfilter/nf_tables_api.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index d8327b43e4dc..10798b357481 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -5847,6 +5847,12 @@ static int __net_init nf_tables_init_net(struct net *net)
return 0;
}
+static void __net_exit nf_tables_exit_net(struct net *net)
+{
+ WARN_ON_ONCE(!list_empty(&net->nft.af_info));
+ WARN_ON_ONCE(!list_empty(&net->nft.commit_list));
+}
+
int __nft_release_basechain(struct nft_ctx *ctx)
{
struct nft_rule *rule, *nr;
@@ -5917,6 +5923,7 @@ static void __nft_release_afinfo(struct net *net, struct nft_af_info *afi)
static struct pernet_operations nf_tables_net_ops = {
.init = nf_tables_init_net,
+ .exit = nf_tables_exit_net,
};
static int __init nf_tables_module_init(void)