patch-2.4.1 linux/net/ipv4/netfilter/ip_conntrack_core.c

Next file: linux/net/ipv4/netfilter/ip_nat_core.c
Previous file: linux/net/ipv4/netfilter/Makefile
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0/linux/net/ipv4/netfilter/ip_conntrack_core.c linux/net/ipv4/netfilter/ip_conntrack_core.c
@@ -882,10 +882,15 @@
 #ifdef CONFIG_NETFILTER_DEBUG
 	unsigned int olddebug = skb->nf_debug;
 #endif
-	if (sk) sock_hold(sk);
+	if (sk) {
+		sock_hold(sk);
+		skb_orphan(skb);
+	}
+
 	local_bh_disable(); 
 	skb = ip_defrag(skb);
-	local_bh_enable(); 
+	local_bh_enable();
+
 	if (!skb) {
 		if (sk) sock_put(sk);
 		return skb;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)