diff --git a/[refs] b/[refs] index 57f9bfc73974..432f24afe12f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7870389478d3c682c79c07abe7f1fce8b8a81952 +refs/heads/master: 9a279bcbe347496799711155ed41a89bc40f79c5 diff --git a/trunk/net/core/dev.c b/trunk/net/core/dev.c index 220f52a1001e..3337cf98f231 100644 --- a/trunk/net/core/dev.c +++ b/trunk/net/core/dev.c @@ -2288,6 +2288,8 @@ int netif_receive_skb(struct sk_buff *skb) if (!skb) goto out; + skb_orphan(skb); + type = skb->protocol; list_for_each_entry_rcu(ptype, &ptype_base[ntohs(type) & PTYPE_HASH_MASK], list) { diff --git a/trunk/net/netfilter/nf_tproxy_core.c b/trunk/net/netfilter/nf_tproxy_core.c index cdc97f3105a3..5490fc37c92d 100644 --- a/trunk/net/netfilter/nf_tproxy_core.c +++ b/trunk/net/netfilter/nf_tproxy_core.c @@ -71,6 +71,7 @@ int nf_tproxy_assign_sock(struct sk_buff *skb, struct sock *sk) { if (inet_sk(sk)->transparent) { + skb_orphan(skb); skb->sk = sk; skb->destructor = nf_tproxy_destructor; return 1;