summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-03-05 00:59:45 +0100
committerDavid S. Miller <davem@sunset.davemloft.net>2007-03-05 22:25:25 +0100
commit7d90e86d31e8beeb66d6754aece890ac4a579887 (patch)
tree8f921e7250fd1e6d9abde9ab48d36164661f97bd
parent[NETFILTER]: nfnetlink_log: fix possible NULL pointer dereference (diff)
downloadlinux-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.c3
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