net/mlx4: prevent potential use after free in mlx4_en_do_uc_filter()
Subsystems (6)
PATCH 1/1 net/mlx4: prevent potential use after free in mlx4_en_do_uc_filter()
Print "entry->mac" before freeing "entry". The "entry" pointer is freed with kfree_rcu() so it's unlikely that we would trigger this in real life, but it's safer to re-order it.
--- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/mellanox/mlx4/en_netdev.c +1 -1
@@ -1180,9 +1180,9 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv,mlx4_unregister_mac (mdev->dev, priv->port, mac);hlist_del_rcu (&entry->hlist); -kfree_rcu (entry, rcu);en_dbg (DRV , priv,"Removed MAC %pM on port:%d\n" , entry->mac, priv->port); +kfree_rcu (entry, rcu); ++removed; } }
Signature · 1 line
2.51.0
Quoted 15 lines · Dan Carpenter
Print "
entry->mac" before freeing "entry". The "entry" pointer is freed withkfree_rcu()so it's unlikely that we would trigger this in real life, but it's safer to re-order it.Fixes cc5387f7346a ("net/mlx4_en: Add unicast MAC filtering")Signed-off-by Dan Carpenter <[email protected]>--- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/net/ethernet/mellanox/mlx4/en_netdev.c +0
-0
drivers/net/ethernet/mellanox/mlx4/en_netdev.c static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv, · line 1188
Quoted 10 lines
drivers/net/ethernet/mellanox/mlx4/en_netdev.c +1
-1@@ -1180,9 +1180,9 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv,mlx4_unregister_mac (mdev->dev, priv->port, mac);hlist_del_rcu (&entry->hlist); -kfree_rcu (entry, rcu);en_dbg (DRV , priv,"Removed MAC %pM on port:%d\n" , entry->mac, priv->port); +kfree_rcu (entry, rcu); ++removed; } }
Thanks for your patch.
This patch was applied to netdev/net.git (main) by Jakub Kicinski <[email protected]>:
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <[email protected]>:
Quoted 8 lines · On Tue, 30 Sep 2025 15:25:01 +0300 you wrote:
Print "
entry->mac" before freeing "entry". The "entry" pointer is freed withkfree_rcu()so it's unlikely that we would trigger this in real life, but it's safer to re-order it.Fixes cc5387f7346a ("net/mlx4_en: Add unicast MAC filtering")Signed-off-by Dan Carpenter <[email protected]>[...]
Here is the summary with links:
- [net] net/mlx4: prevent potential use after free in mlx4_en_do_uc_filter()
https://git.kernel.org/netdev/net/c/4f0d91ba7281
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html