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) |