summaryrefslogtreecommitdiffstats
path: root/net/netfilter/nf_tables_netdev.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso2015-12-15 19:39:32 +0100
committerPablo Neira Ayuso2015-12-28 18:34:35 +0100
commitdf05ef874b284d833c2d9795a6350c6a373ab6c9 (patch)
treeffd2f14eaaebec6551de4e8e2fc1f19d9cb1ccf0 /net/netfilter/nf_tables_netdev.c
parentMerge branch 'bnxt_en-next' (diff)
downloadkernel-qcow2-linux-df05ef874b284d833c2d9795a6350c6a373ab6c9.tar.gz
kernel-qcow2-linux-df05ef874b284d833c2d9795a6350c6a373ab6c9.tar.xz
kernel-qcow2-linux-df05ef874b284d833c2d9795a6350c6a373ab6c9.zip
netfilter: nf_tables: release objects on netns destruction
We have to release the existing objects on netns removal otherwise we leak them. Chains are unregistered in first place to make sure no packets are walking on our rules and sets anymore. The object release happens by when we unregister the family via nft_release_afinfo() which is called from nft_unregister_afinfo() from the corresponding __net_exit path in every family. Reported-by: Patrick McHardy <kaber@trash.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter/nf_tables_netdev.c')
-rw-r--r--net/netfilter/nf_tables_netdev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netfilter/nf_tables_netdev.c b/net/netfilter/nf_tables_netdev.c
index 7b9c053ba750..2bfd1fbccec8 100644
--- a/net/netfilter/nf_tables_netdev.c
+++ b/net/netfilter/nf_tables_netdev.c
@@ -139,7 +139,7 @@ err:
static void nf_tables_netdev_exit_net(struct net *net)
{
- nft_unregister_afinfo(net->nft.netdev);
+ nft_unregister_afinfo(net, net->nft.netdev);
kfree(net->nft.netdev);
}