Skip to content

Commit cf57b5d

Browse files
Wang Haikuba-moo
authored andcommitted
net: ethernet: aeroflex: fix potential memory leak in greth_start_xmit_gbit()
The greth_start_xmit_gbit() returns NETDEV_TX_OK without freeing skb in case of skb->len being too long, add dev_kfree_skb() to fix it. Fixes: d4c4113 ("net: Add Aeroflex Gaisler 10/100/1G Ethernet MAC driver") Signed-off-by: Wang Hai <[email protected]> Reviewed-by: Gerhard Engleder <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent a1494d5 commit cf57b5d

File tree

1 file changed

+2
-1
lines changed
  • drivers/net/ethernet/aeroflex

1 file changed

+2
-1
lines changed

drivers/net/ethernet/aeroflex/greth.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev)
484484

485485
if (unlikely(skb->len > MAX_FRAME_SIZE)) {
486486
dev->stats.tx_errors++;
487-
goto out;
487+
goto len_error;
488488
}
489489

490490
/* Save skb pointer. */
@@ -575,6 +575,7 @@ greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev)
575575
map_error:
576576
if (net_ratelimit())
577577
dev_warn(greth->dev, "Could not create TX DMA mapping\n");
578+
len_error:
578579
dev_kfree_skb(skb);
579580
out:
580581
return err;

0 commit comments

Comments
 (0)