]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[NETFILTER]: nfnetlink_log: fix reference leak
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>
Sat, 24 Mar 2007 20:34:37 +0000 (21:34 +0100)
committerAdrian Bunk <bunk@stusta.de>
Sat, 24 Mar 2007 20:34:37 +0000 (21:34 +0100)
Stop reference leaking in nfulnl_log_packet(). If we start a timer we
are already taking another reference.

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
net/netfilter/nfnetlink_log.c

index 616cb7412b6fd8d3ec9f4731d586d2bef93fd86d..c0a3ca64b9c9708e22e8d2a7cfb6968519804234 100644 (file)
@@ -687,15 +687,16 @@ nfulnl_log_packet(unsigned int pf,
                inst->timer.expires = jiffies + (inst->flushtimeout*HZ/100);
                add_timer(&inst->timer);
        }
-       spin_unlock_bh(&inst->lock);
 
+unlock_and_release:
+       spin_unlock_bh(&inst->lock);
+       instance_put(inst);
        return;
 
 alloc_failure:
-       spin_unlock_bh(&inst->lock);
-       instance_put(inst);
        UDEBUG("error allocating skb\n");
        /* FIXME: statistics */
+       goto unlock_and_release;
 }
 
 static int