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