diff options
author | Dmitry Mishin <dim@openvz.org> | 2006-09-20 15:00:21 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 18:19:51 -0400 |
commit | 90d47db4a06f93f7339618b2a4f0cb032ef8d6d5 (patch) | |
tree | 5bc69de31502801f3526577775e90225a43a0ff2 /net | |
parent | 9123de2c043996050bacf77031cad845f5976f5d (diff) |
[NETFILTER]: x_tables: small check_entry & module_refcount cleanup
While standard_target has target->me == NULL, module_put() should be
called for it as for others, because there were try_module_get() before.
Signed-off-by: Dmitry Mishin <dim@openvz.org>
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 | 2 | ||||
-rw-r--r-- | net/ipv4/netfilter/ip_tables.c | 2 | ||||
-rw-r--r-- | net/ipv6/netfilter/ip6_tables.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c index aaeaa9ce0f28..85f0d73ebfb4 100644 --- a/net/ipv4/netfilter/arp_tables.c +++ b/net/ipv4/netfilter/arp_tables.c | |||
@@ -485,7 +485,7 @@ static inline int check_entry(struct arpt_entry *e, const char *name, unsigned i | |||
485 | if (t->u.kernel.target == &arpt_standard_target) { | 485 | if (t->u.kernel.target == &arpt_standard_target) { |
486 | if (!standard_check(t, size)) { | 486 | if (!standard_check(t, size)) { |
487 | ret = -EINVAL; | 487 | ret = -EINVAL; |
488 | goto out; | 488 | goto err; |
489 | } | 489 | } |
490 | } else if (t->u.kernel.target->checkentry | 490 | } else if (t->u.kernel.target->checkentry |
491 | && !t->u.kernel.target->checkentry(name, e, target, t->data, | 491 | && !t->u.kernel.target->checkentry(name, e, target, t->data, |
diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c index a0f36806998c..38e1e4fba0db 100644 --- a/net/ipv4/netfilter/ip_tables.c +++ b/net/ipv4/netfilter/ip_tables.c | |||
@@ -573,7 +573,7 @@ check_entry(struct ipt_entry *e, const char *name, unsigned int size, | |||
573 | if (t->u.kernel.target == &ipt_standard_target) { | 573 | if (t->u.kernel.target == &ipt_standard_target) { |
574 | if (!standard_check(t, size)) { | 574 | if (!standard_check(t, size)) { |
575 | ret = -EINVAL; | 575 | ret = -EINVAL; |
576 | goto cleanup_matches; | 576 | goto err; |
577 | } | 577 | } |
578 | } else if (t->u.kernel.target->checkentry | 578 | } else if (t->u.kernel.target->checkentry |
579 | && !t->u.kernel.target->checkentry(name, e, target, t->data, | 579 | && !t->u.kernel.target->checkentry(name, e, target, t->data, |
diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c index 73d477ce216b..4ab368fa0b8f 100644 --- a/net/ipv6/netfilter/ip6_tables.c +++ b/net/ipv6/netfilter/ip6_tables.c | |||
@@ -610,7 +610,7 @@ check_entry(struct ip6t_entry *e, const char *name, unsigned int size, | |||
610 | if (t->u.kernel.target == &ip6t_standard_target) { | 610 | if (t->u.kernel.target == &ip6t_standard_target) { |
611 | if (!standard_check(t, size)) { | 611 | if (!standard_check(t, size)) { |
612 | ret = -EINVAL; | 612 | ret = -EINVAL; |
613 | goto cleanup_matches; | 613 | goto err; |
614 | } | 614 | } |
615 | } else if (t->u.kernel.target->checkentry | 615 | } else if (t->u.kernel.target->checkentry |
616 | && !t->u.kernel.target->checkentry(name, e, target, t->data, | 616 | && !t->u.kernel.target->checkentry(name, e, target, t->data, |