Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: d4c41139df6e ("net: Add Aeroflex Gaisler 10/100/1G Ethernet MAC driver")
Signed-off-by: Wang Hai <wanghai38@huawei.com>
Reviewed-by: Gerhard Engleder <gerhard@engleder-embedded.com>
Link: https://patch.msgid.link/20241012110434.49265-1-wanghai38@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Wang Hai and committed by
Jakub Kicinski
cf57b5d7 a1494d53

+2 -1
+2 -1
drivers/net/ethernet/aeroflex/greth.c
··· 484 484 485 485 if (unlikely(skb->len > MAX_FRAME_SIZE)) { 486 486 dev->stats.tx_errors++; 487 - goto out; 487 + goto len_error; 488 488 } 489 489 490 490 /* Save skb pointer. */ ··· 575 575 map_error: 576 576 if (net_ratelimit()) 577 577 dev_warn(greth->dev, "Could not create TX DMA mapping\n"); 578 + len_error: 578 579 dev_kfree_skb(skb); 579 580 out: 580 581 return err;