summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2016-01-18 13:52:29 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2016-01-18 13:53:37 +0100
commit35b815392a6b6c268baf3b63d7f2ba350597024f (patch)
treea4070c126591fe62f79e7bfcafaf89d8f07fde73 /net
parentd6b3347bf178266259af64b1f27b5cf54acf62c8 (diff)
downloadlinux-stable-35b815392a6b6c268baf3b63d7f2ba350597024f.tar.gz
linux-stable-35b815392a6b6c268baf3b63d7f2ba350597024f.tar.bz2
linux-stable-35b815392a6b6c268baf3b63d7f2ba350597024f.zip
netfilter: nf_tables_netdev: fix error path in module initialization
Unregister the chain type and return error, otherwise this leaks the subscription to the netdevice notifier call chain. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/nf_tables_netdev.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/netfilter/nf_tables_netdev.c b/net/netfilter/nf_tables_netdev.c
index b6605e000801..5eefe4a355c6 100644
--- a/net/netfilter/nf_tables_netdev.c
+++ b/net/netfilter/nf_tables_netdev.c
@@ -224,12 +224,12 @@ static int __init nf_tables_netdev_init(void)
nft_register_chain_type(&nft_filter_chain_netdev);
ret = register_pernet_subsys(&nf_tables_netdev_net_ops);
- if (ret < 0)
+ if (ret < 0) {
nft_unregister_chain_type(&nft_filter_chain_netdev);
-
+ return ret;
+ }
register_netdevice_notifier(&nf_tables_netdev_notifier);
-
- return ret;
+ return 0;
}
static void __exit nf_tables_netdev_exit(void)