diff options
| author | Jean Sacren <sakiwit@gmail.com> | 2012-08-19 11:11:32 -0400 |
|---|---|---|
| committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-08-22 13:17:38 -0400 |
| commit | 90efbed18a30d78145419cdbd44f9ec152efeb16 (patch) | |
| tree | 8724b522e0b6152856baad0a407573a917bbf6da | |
| parent | 6705e86724f1ac83394592be7dbfc0c07ac25aa2 (diff) | |
netfilter: remove unnecessary goto statement for error recovery
Usually it's a good practice to use goto statement for error recovery
when initializing the module. This approach could be an overkill if:
1) there is only one fail case;
2) success and failure use the same return statement.
For a cleaner approach, remove the unnecessary goto statement and
directly implement error recovery.
Signed-off-by: Jean Sacren <sakiwit@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
| -rw-r--r-- | net/ipv4/netfilter/iptable_filter.c | 6 | ||||
| -rw-r--r-- | net/ipv4/netfilter/iptable_mangle.c | 6 | ||||
| -rw-r--r-- | net/ipv4/netfilter/iptable_raw.c | 6 |
3 files changed, 3 insertions, 15 deletions
diff --git a/net/ipv4/netfilter/iptable_filter.c b/net/ipv4/netfilter/iptable_filter.c index d20cc374025c..6b3da5cf54e9 100644 --- a/net/ipv4/netfilter/iptable_filter.c +++ b/net/ipv4/netfilter/iptable_filter.c | |||
| @@ -94,14 +94,10 @@ static int __init iptable_filter_init(void) | |||
| 94 | filter_ops = xt_hook_link(&packet_filter, iptable_filter_hook); | 94 | filter_ops = xt_hook_link(&packet_filter, iptable_filter_hook); |
| 95 | if (IS_ERR(filter_ops)) { | 95 | if (IS_ERR(filter_ops)) { |
| 96 | ret = PTR_ERR(filter_ops); | 96 | ret = PTR_ERR(filter_ops); |
| 97 | goto cleanup_table; | 97 | unregister_pernet_subsys(&iptable_filter_net_ops); |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | return ret; | 100 | return ret; |
| 101 | |||
| 102 | cleanup_table: | ||
| 103 | unregister_pernet_subsys(&iptable_filter_net_ops); | ||
| 104 | return ret; | ||
| 105 | } | 101 | } |
| 106 | 102 | ||
| 107 | static void __exit iptable_filter_fini(void) | 103 | static void __exit iptable_filter_fini(void) |
diff --git a/net/ipv4/netfilter/iptable_mangle.c b/net/ipv4/netfilter/iptable_mangle.c index f38b94288cf5..85d88f206447 100644 --- a/net/ipv4/netfilter/iptable_mangle.c +++ b/net/ipv4/netfilter/iptable_mangle.c | |||
| @@ -129,14 +129,10 @@ static int __init iptable_mangle_init(void) | |||
| 129 | mangle_ops = xt_hook_link(&packet_mangler, iptable_mangle_hook); | 129 | mangle_ops = xt_hook_link(&packet_mangler, iptable_mangle_hook); |
| 130 | if (IS_ERR(mangle_ops)) { | 130 | if (IS_ERR(mangle_ops)) { |
| 131 | ret = PTR_ERR(mangle_ops); | 131 | ret = PTR_ERR(mangle_ops); |
| 132 | goto cleanup_table; | 132 | unregister_pernet_subsys(&iptable_mangle_net_ops); |
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | return ret; | 135 | return ret; |
| 136 | |||
| 137 | cleanup_table: | ||
| 138 | unregister_pernet_subsys(&iptable_mangle_net_ops); | ||
| 139 | return ret; | ||
| 140 | } | 136 | } |
| 141 | 137 | ||
| 142 | static void __exit iptable_mangle_fini(void) | 138 | static void __exit iptable_mangle_fini(void) |
diff --git a/net/ipv4/netfilter/iptable_raw.c b/net/ipv4/netfilter/iptable_raw.c index b21e2191e2f5..03d9696d3c6e 100644 --- a/net/ipv4/netfilter/iptable_raw.c +++ b/net/ipv4/netfilter/iptable_raw.c | |||
| @@ -73,14 +73,10 @@ static int __init iptable_raw_init(void) | |||
| 73 | rawtable_ops = xt_hook_link(&packet_raw, iptable_raw_hook); | 73 | rawtable_ops = xt_hook_link(&packet_raw, iptable_raw_hook); |
| 74 | if (IS_ERR(rawtable_ops)) { | 74 | if (IS_ERR(rawtable_ops)) { |
| 75 | ret = PTR_ERR(rawtable_ops); | 75 | ret = PTR_ERR(rawtable_ops); |
| 76 | goto cleanup_table; | 76 | unregister_pernet_subsys(&iptable_raw_net_ops); |
| 77 | } | 77 | } |
| 78 | 78 | ||
| 79 | return ret; | 79 | return ret; |
| 80 | |||
| 81 | cleanup_table: | ||
| 82 | unregister_pernet_subsys(&iptable_raw_net_ops); | ||
| 83 | return ret; | ||
| 84 | } | 80 | } |
| 85 | 81 | ||
| 86 | static void __exit iptable_raw_fini(void) | 82 | static void __exit iptable_raw_fini(void) |
