lkml.org 
[lkml]   [2022]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 108/298] net/mlx5: Dont use already freed action pointer
    Date
    From: Leon Romanovsky <leonro@nvidia.com>

    [ Upstream commit 80b2bd737d0e833e6a2b77e482e5a714a79c86a4 ]

    The call to mlx5dr_action_destroy() releases "action" memory. That
    pointer is set to miss_action later and generates the following smatch
    error:

    drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c:53 set_miss_action()
    warn: 'action' was already freed.

    Make sure that the pointer is always valid by setting NULL after destroy.

    Fixes: 6a48faeeca10 ("net/mlx5: Add direct rule fs_cmd implementation")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c | 9 ++++-----
    1 file changed, 4 insertions(+), 5 deletions(-)

    diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c
    index 05393fe11132..caeaa3c29353 100644
    --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c
    @@ -44,11 +44,10 @@ static int set_miss_action(struct mlx5_flow_root_namespace *ns,
    err = mlx5dr_table_set_miss_action(ft->fs_dr_table.dr_table, action);
    if (err && action) {
    err = mlx5dr_action_destroy(action);
    - if (err) {
    - action = NULL;
    - mlx5_core_err(ns->dev, "Failed to destroy action (%d)\n",
    - err);
    - }
    + if (err)
    + mlx5_core_err(ns->dev,
    + "Failed to destroy action (%d)\n", err);
    + action = NULL;
    }
    ft->fs_dr_table.miss_action = action;
    if (old_miss_action) {
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-13 16:26    [W:4.046 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site