diff options
author | David S. Miller <davem@davemloft.net> | 2013-11-02 07:13:48 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-02 07:13:48 +0100 |
commit | 296c10639a33941d0090afa17b7535fcbf81d97a (patch) | |
tree | f85819ef71b07bcf004c7971fa66c9f68a45bd74 /net/xfrm/xfrm_policy.c | |
parent | bonding: bond_get_size() returns wrong size (diff) | |
parent | net: esp{4,6}: get rid of struct esp_data (diff) | |
download | linux-296c10639a33941d0090afa17b7535fcbf81d97a.tar.xz linux-296c10639a33941d0090afa17b7535fcbf81d97a.zip |
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.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 76e1873811d4..9a91f7431c41 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); |