net: ethernet: aeroflex: fix potential memory leak in greth_start_xmit_gbit()
[ Upstream commit cf57b5d7a2aad456719152ecd12007fe031628a3 ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
34b9267737
commit
a562f4c3c9
1 changed files with 2 additions and 1 deletions
|
@ -484,7 +484,7 @@ greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev)
|
||||||
|
|
||||||
if (unlikely(skb->len > MAX_FRAME_SIZE)) {
|
if (unlikely(skb->len > MAX_FRAME_SIZE)) {
|
||||||
dev->stats.tx_errors++;
|
dev->stats.tx_errors++;
|
||||||
goto out;
|
goto len_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Save skb pointer. */
|
/* Save skb pointer. */
|
||||||
|
@ -575,6 +575,7 @@ frag_map_error:
|
||||||
map_error:
|
map_error:
|
||||||
if (net_ratelimit())
|
if (net_ratelimit())
|
||||||
dev_warn(greth->dev, "Could not create TX DMA mapping\n");
|
dev_warn(greth->dev, "Could not create TX DMA mapping\n");
|
||||||
|
len_error:
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
out:
|
out:
|
||||||
return err;
|
return err;
|
||||||
|
|
Loading…
Add table
Reference in a new issue