Browse Source

sunvnet: fix a memory leak in vnet_handle_offloads

when skb_gso_segment returns error, the original skb should be freed

Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
Acked-by: David L Stevens <david.stevens@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Li RongQing 10 years ago
parent
commit
4f2ff8ef9e
1 changed files with 1 additions and 0 deletions
  1. 1 0
      drivers/net/ethernet/sun/sunvnet.c

+ 1 - 0
drivers/net/ethernet/sun/sunvnet.c

@@ -1201,6 +1201,7 @@ static int vnet_handle_offloads(struct vnet_port *port, struct sk_buff *skb)
 		segs = skb_gso_segment(skb, dev->features & ~NETIF_F_TSO);
 		segs = skb_gso_segment(skb, dev->features & ~NETIF_F_TSO);
 	if (IS_ERR(segs)) {
 	if (IS_ERR(segs)) {
 		dev->stats.tx_dropped++;
 		dev->stats.tx_dropped++;
+		dev_kfree_skb_any(skb);
 		return NETDEV_TX_OK;
 		return NETDEV_TX_OK;
 	}
 	}