All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] net: sonic: remove dev_kfree_skb before return NETDEV_TX_BUSY
@ 2019-09-04  9:42 ` Mao Wenan
  0 siblings, 0 replies; 12+ messages in thread
From: Mao Wenan @ 2019-09-04  9:42 UTC (permalink / raw)
  To: tsbogend, davem; +Cc: netdev, linux-kernel, kernel-janitors, Mao Wenan

When dma_map_single is failed to map buffer, skb can't be freed
before sonic driver return to stack with NETDEV_TX_BUSY, because
this skb may be requeued to qdisc, it might trigger use-after-free.

Fixes: d9fb9f384292 ("*sonic/natsemi/ns83829: Move the National Semi-conductor drivers")
Signed-off-by: Mao Wenan <maowenan@huawei.com>
---
 drivers/net/ethernet/natsemi/sonic.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/ethernet/natsemi/sonic.c b/drivers/net/ethernet/natsemi/sonic.c
index d0a01e8f000a..248a8f22a33b 100644
--- a/drivers/net/ethernet/natsemi/sonic.c
+++ b/drivers/net/ethernet/natsemi/sonic.c
@@ -233,7 +233,6 @@ static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev)
 	laddr = dma_map_single(lp->device, skb->data, length, DMA_TO_DEVICE);
 	if (!laddr) {
 		printk(KERN_ERR "%s: failed to map tx DMA buffer.\n", dev->name);
-		dev_kfree_skb(skb);
 		return NETDEV_TX_BUSY;
 	}
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2019-09-06 13:05 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-04  9:42 [PATCH net] net: sonic: remove dev_kfree_skb before return NETDEV_TX_BUSY Mao Wenan
2019-09-04  9:42 ` Mao Wenan
2019-09-04  9:50 ` Thomas Bogendoerfer
2019-09-04  9:50   ` Thomas Bogendoerfer
2019-09-04 10:19 ` Eric Dumazet
2019-09-04 10:19   ` Eric Dumazet
2019-09-05  0:56   ` maowenan
2019-09-05  0:56     ` maowenan
2019-09-05  1:57     ` [PATCH v2 net] net: sonic: return NETDEV_TX_OK if failed to map buffer Mao Wenan
2019-09-05  1:57       ` Mao Wenan
2019-09-06 13:05       ` David Miller
2019-09-06 13:05         ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.