diff options
author | Patrick McHardy <kaber@trash.net> | 2007-03-05 00:59:45 +0100 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-03-05 22:25:25 +0100 |
commit | 7d90e86d31e8beeb66d6754aece890ac4a579887 (patch) | |
tree | 8f921e7250fd1e6d9abde9ab48d36164661f97bd | |
parent | [NETFILTER]: nfnetlink_log: fix possible NULL pointer dereference (diff) | |
download | linux-7d90e86d31e8beeb66d6754aece890ac4a579887.tar.xz linux-7d90e86d31e8beeb66d6754aece890ac4a579887.zip |
[NETFILTER]: nfnetlink_log: fix module reference counting
Count module references correctly: after instance_destroy() there
might be timer pending and holding a reference for this netlink instance.
Based on patch by Michal Miroslaw <mirq-linux@rere.qmqm.pl>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/netfilter/nfnetlink_log.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c index b669db564695..d0af8bc3eee1 100644 --- a/net/netfilter/nfnetlink_log.c +++ b/net/netfilter/nfnetlink_log.c @@ -133,6 +133,7 @@ instance_put(struct nfulnl_instance *inst) if (inst && atomic_dec_and_test(&inst->use)) { UDEBUG("kfree(inst=%p)\n", inst); kfree(inst); + module_put(THIS_MODULE); } } @@ -228,8 +229,6 @@ _instance_destroy2(struct nfulnl_instance *inst, int lock) /* and finally put the refcount */ instance_put(inst); - - module_put(THIS_MODULE); } static inline void |