diff options
author | Wang Hai <wanghai38@huawei.com> | 2024-10-12 19:04:34 +0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-10-15 09:59:20 -0700 |
commit | cf57b5d7a2aad456719152ecd12007fe031628a3 (patch) | |
tree | 2d9614f546f7de1c9282351aa4f038844ac58004 | |
parent | a1494d532e28598bde7a5544892ef9c7dbfafa93 (diff) | |
download | lwn-cf57b5d7a2aad456719152ecd12007fe031628a3.tar.gz lwn-cf57b5d7a2aad456719152ecd12007fe031628a3.zip |
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>
-rw-r--r-- | drivers/net/ethernet/aeroflex/greth.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/aeroflex/greth.c b/drivers/net/ethernet/aeroflex/greth.c index 27af7746d645..adf6f67c5fcb 100644 --- a/drivers/net/ethernet/aeroflex/greth.c +++ b/drivers/net/ethernet/aeroflex/greth.c @@ -484,7 +484,7 @@ greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev) if (unlikely(skb->len > MAX_FRAME_SIZE)) { dev->stats.tx_errors++; - goto out; + goto len_error; } /* Save skb pointer. */ @@ -575,6 +575,7 @@ frag_map_error: map_error: if (net_ratelimit()) dev_warn(greth->dev, "Could not create TX DMA mapping\n"); +len_error: dev_kfree_skb(skb); out: return err; |