diff options
author | Vasily Averin | 2017-11-12 12:32:37 +0100 |
---|---|---|
committer | Pablo Neira Ayuso | 2017-11-20 12:03:41 +0100 |
commit | 613d0776d3fe7eb28c695a63a5533a1ec8258c86 (patch) | |
tree | 08d9707ea53ccf351385ada525aeb3f250ccb6fd /net/netfilter/nf_tables_api.c | |
parent | netfilter: remove redundant assignment to e (diff) | |
download | kernel-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.c | 7 |
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) |