aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Sacren <sakiwit@gmail.com>2012-08-19 11:11:32 -0400
committerPablo Neira Ayuso <pablo@netfilter.org>2012-08-22 13:17:38 -0400
commit90efbed18a30d78145419cdbd44f9ec152efeb16 (patch)
tree8724b522e0b6152856baad0a407573a917bbf6da
parent6705e86724f1ac83394592be7dbfc0c07ac25aa2 (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.c6
-rw-r--r--net/ipv4/netfilter/iptable_mangle.c6
-rw-r--r--net/ipv4/netfilter/iptable_raw.c6
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
107static void __exit iptable_filter_fini(void) 103static 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
142static void __exit iptable_mangle_fini(void) 138static 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
86static void __exit iptable_raw_fini(void) 82static void __exit iptable_raw_fini(void)