net: drop the packet when fails to do software segmentation or header check
authorJason Wang <jasowang@redhat.com>
Fri, 19 Dec 2014 03:09:13 +0000 (11:09 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Dec 2014 04:12:11 +0000 (23:12 -0500)
Commit cecda693a969816bac5e470e1d9c9c0ef5567bca ("net: keep original skb
which only needs header checking during software GSO") keeps the original
skb for packets that only needs header check, but it doesn't drop the
packet if software segmentation or header check were failed.

Fixes cecda693a9 ("net: keep original skb which only needs header checking during software GSO")
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c

index f411c28d0a66805661db0a409b140d02e8ca4041..a989f850241217f77516e0210028677e512d0c5a 100644 (file)
@@ -2673,7 +2673,7 @@ static struct sk_buff *validate_xmit_skb(struct sk_buff *skb, struct net_device
 
                segs = skb_gso_segment(skb, features);
                if (IS_ERR(segs)) {
-                       segs = NULL;
+                       goto out_kfree_skb;
                } else if (segs) {
                        consume_skb(skb);
                        skb = segs;