summaryrefslogtreecommitdiffstats
path: root/net/xfrm/xfrm_policy.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-11-02 02:13:48 -0400
committerDavid S. Miller <davem@davemloft.net>2013-11-02 02:13:48 -0400
commit296c10639a33941d0090afa17b7535fcbf81d97a (patch)
treef85819ef71b07bcf004c7971fa66c9f68a45bd74 /net/xfrm/xfrm_policy.c
parente139862eeec985d7139b11b09deeb9a32e3f3af2 (diff)
parent1c5ad13f7c2b2afe30e43858d04fff979dc9d243 (diff)
downloadop-kernel-dev-296c10639a33941d0090afa17b7535fcbf81d97a.zip
op-kernel-dev-296c10639a33941d0090afa17b7535fcbf81d97a.tar.gz
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next
Conflicts: net/xfrm/xfrm_policy.c Minor merge conflict in xfrm_policy.c, consisting of overlapping changes which were trivial to resolve. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
-rw-r--r--net/xfrm/xfrm_policy.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 76e1873..9a91f74 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1844,6 +1844,13 @@ static int xdst_queue_output(struct sk_buff *skb)
struct xfrm_dst *xdst = (struct xfrm_dst *) dst;
struct xfrm_policy *pol = xdst->pols[0];
struct xfrm_policy_queue *pq = &pol->polq;
+ const struct sk_buff *fclone = skb + 1;
+
+ if (unlikely(skb->fclone == SKB_FCLONE_ORIG &&
+ fclone->fclone == SKB_FCLONE_CLONE)) {
+ kfree_skb(skb);
+ return 0;
+ }
if (pq->hold_queue.qlen > XFRM_MAX_QUEUE_LEN) {
kfree_skb(skb);
OpenPOWER on IntegriCloud