aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2006-06-27 06:00:09 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2006-06-29 19:57:40 -0400
commitda298d3a4f01dbc10c54da75d6b5717a99fb9cbc (patch)
treed6cbeec6c5252b17adefcdd401d4397301bfcd1f /net
parentbf7e8511088963078484132636839b59e25cf14f (diff)
[NETFILTER]: x_tables: fix xt_register_table error propagation
When xt_register_table fails the error is not properly propagated back. Based on patch by Lepton Wu <ytht.net@gmail.com>. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/netfilter/arp_tables.c3
-rw-r--r--net/ipv4/netfilter/ip_tables.c3
-rw-r--r--net/ipv6/netfilter/ip6_tables.c3
3 files changed, 6 insertions, 3 deletions
diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
index d0d19192026d..ad39bf640567 100644
--- a/net/ipv4/netfilter/arp_tables.c
+++ b/net/ipv4/netfilter/arp_tables.c
@@ -1120,7 +1120,8 @@ int arpt_register_table(struct arpt_table *table,
1120 return ret; 1120 return ret;
1121 } 1121 }
1122 1122
1123 if (xt_register_table(table, &bootstrap, newinfo) != 0) { 1123 ret = xt_register_table(table, &bootstrap, newinfo);
1124 if (ret != 0) {
1124 xt_free_table_info(newinfo); 1125 xt_free_table_info(newinfo);
1125 return ret; 1126 return ret;
1126 } 1127 }
diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
index 706c0025ec5e..7aaaf92efb59 100644
--- a/net/ipv4/netfilter/ip_tables.c
+++ b/net/ipv4/netfilter/ip_tables.c
@@ -2113,7 +2113,8 @@ int ipt_register_table(struct xt_table *table, const struct ipt_replace *repl)
2113 return ret; 2113 return ret;
2114 } 2114 }
2115 2115
2116 if (xt_register_table(table, &bootstrap, newinfo) != 0) { 2116 ret = xt_register_table(table, &bootstrap, newinfo);
2117 if (ret != 0) {
2117 xt_free_table_info(newinfo); 2118 xt_free_table_info(newinfo);
2118 return ret; 2119 return ret;
2119 } 2120 }
diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
index 2e72f89a7019..0b5bd5587a3e 100644
--- a/net/ipv6/netfilter/ip6_tables.c
+++ b/net/ipv6/netfilter/ip6_tables.c
@@ -1281,7 +1281,8 @@ int ip6t_register_table(struct xt_table *table,
1281 return ret; 1281 return ret;
1282 } 1282 }
1283 1283
1284 if (xt_register_table(table, &bootstrap, newinfo) != 0) { 1284 ret = xt_register_table(table, &bootstrap, newinfo);
1285 if (ret != 0) {
1285 xt_free_table_info(newinfo); 1286 xt_free_table_info(newinfo);
1286 return ret; 1287 return ret;
1287 } 1288 }