diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-02 08:10:30 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-02 08:10:30 -0800 |
commit | 6cdd12acb6ea1ad8cd523369d1c326cc26c91ca1 (patch) | |
tree | a90d5ea27d5e6d0b3b8ad7c7ea6b231e9d6893c1 | |
parent | 583243c062dae7092890d6fb803958e36da98838 (diff) | |
parent | 239a87c87660d3b97a467a661eec927f0dfa9891 (diff) | |
download | linux-6cdd12acb6ea1ad8cd523369d1c326cc26c91ca1.tar.gz linux-6cdd12acb6ea1ad8cd523369d1c326cc26c91ca1.tar.bz2 linux-6cdd12acb6ea1ad8cd523369d1c326cc26c91ca1.zip |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[NET_SCHED]: act_ipt: fix regression in ipt action
-rw-r--r-- | net/sched/act_ipt.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/sched/act_ipt.c b/net/sched/act_ipt.c index a9608064a4c3..01e69138578d 100644 --- a/net/sched/act_ipt.c +++ b/net/sched/act_ipt.c @@ -55,7 +55,8 @@ static int ipt_init_target(struct ipt_entry_target *t, char *table, unsigned int struct ipt_target *target; int ret = 0; - target = xt_find_target(AF_INET, t->u.user.name, t->u.user.revision); + target = xt_request_find_target(AF_INET, t->u.user.name, + t->u.user.revision); if (!target) return -ENOENT; @@ -63,9 +64,10 @@ static int ipt_init_target(struct ipt_entry_target *t, char *table, unsigned int ret = xt_check_target(target, AF_INET, t->u.target_size - sizeof(*t), table, hook, 0, 0); - if (ret) + if (ret) { + module_put(t->u.kernel.target->me); return ret; - + } if (t->u.kernel.target->checkentry && !t->u.kernel.target->checkentry(table, NULL, t->u.kernel.target, t->data, |