diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2016-01-18 13:52:29 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2016-01-18 13:53:37 +0100 |
commit | 35b815392a6b6c268baf3b63d7f2ba350597024f (patch) | |
tree | a4070c126591fe62f79e7bfcafaf89d8f07fde73 /net | |
parent | d6b3347bf178266259af64b1f27b5cf54acf62c8 (diff) | |
download | linux-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.c | 8 |
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) |