diff mbox series

[net] net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in mtk_xdp_run

Message ID 627a07d759020356b64473e09f0855960e02db28.1660659112.git.lorenzo@kernel.org (mailing list archive)
State New, archived
Headers show
Series [net] net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in mtk_xdp_run | expand

Commit Message

Lorenzo Bianconi Aug. 16, 2022, 2:16 p.m. UTC
Fix possible NULL pointer dereference in mtk_xdp_run() if the
ebpf program returns XDP_TX and xdp_convert_buff_to_frame routine fails
returning NULL.

Fixes: 5886d26fd25bb ("net: ethernet: mtk_eth_soc: add xmit XDP support")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

patchwork-bot+netdevbpf@kernel.org Aug. 18, 2022, 5:20 a.m. UTC | #1
Hello:

This patch was applied to netdev/net.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 16 Aug 2022 16:16:15 +0200 you wrote:
> Fix possible NULL pointer dereference in mtk_xdp_run() if the
> ebpf program returns XDP_TX and xdp_convert_buff_to_frame routine fails
> returning NULL.
> 
> Fixes: 5886d26fd25bb ("net: ethernet: mtk_eth_soc: add xmit XDP support")
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> 
> [...]

Here is the summary with links:
  - [net] net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in mtk_xdp_run
    https://git.kernel.org/netdev/net/c/a617ccc01608

You are awesome, thank you!
diff mbox series

Patch

diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index d9426b01f462..8aff4c0c28bd 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1732,7 +1732,7 @@  static u32 mtk_xdp_run(struct mtk_eth *eth, struct mtk_rx_ring *ring,
 	case XDP_TX: {
 		struct xdp_frame *xdpf = xdp_convert_buff_to_frame(xdp);
 
-		if (mtk_xdp_submit_frame(eth, xdpf, dev, false)) {
+		if (!xdpf || mtk_xdp_submit_frame(eth, xdpf, dev, false)) {
 			count = &hw_stats->xdp_stats.rx_xdp_tx_errors;
 			act = XDP_DROP;
 			break;