From d684641802ada3ac1b4aef27314ec960c81abd80 Mon Sep 17 00:00:00 2001 From: Michal Miroslaw Date: Tue, 13 Mar 2007 16:45:26 +0100 Subject: NETFILTER: nfnetlink_log: fix reference counting [NETFILTER]: nfnetlink_log: fix reference counting Fix reference counting (memory leak) problem in __nfulnl_send() and callers related to packet queueing. Signed-off-by: Michal Miroslaw Signed-off-by: Patrick McHardy Signed-off-by: Greg Kroah-Hartman --- net/netfilter/nfnetlink_log.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'net') diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c index 690b173bdee7..f7eafd80474a 100644 --- a/net/netfilter/nfnetlink_log.c +++ b/net/netfilter/nfnetlink_log.c @@ -218,10 +218,8 @@ _instance_destroy2(struct nfulnl_instance *inst, int lock) spin_lock_bh(&inst->lock); if (inst->skb) { /* timer "holds" one reference (we have one more) */ - if (timer_pending(&inst->timer)) { - del_timer(&inst->timer); + if (del_timer(&inst->timer)) instance_put(inst); - } if (inst->qlen) __nfulnl_send(inst); if (inst->skb) { @@ -695,10 +693,8 @@ nfulnl_log_packet(unsigned int pf, UDEBUG("flushing old skb\n"); /* timer "holds" one reference (we have another one) */ - if (timer_pending(&inst->timer)) { - del_timer(&inst->timer); + if (del_timer(&inst->timer)) instance_put(inst); - } __nfulnl_send(inst); if (!(inst->skb = nfulnl_alloc_skb(nlbufsiz, size))) { -- cgit v1.2.3