diff options
author | Patrick McHardy <kaber@trash.net> | 2006-06-27 06:00:09 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-06-29 19:57:40 -0400 |
commit | da298d3a4f01dbc10c54da75d6b5717a99fb9cbc (patch) | |
tree | d6cbeec6c5252b17adefcdd401d4397301bfcd1f /net | |
parent | bf7e8511088963078484132636839b59e25cf14f (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.c | 3 | ||||
-rw-r--r-- | net/ipv4/netfilter/ip_tables.c | 3 | ||||
-rw-r--r-- | net/ipv6/netfilter/ip6_tables.c | 3 |
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 | } |