]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
net/mlx5: DR, fix memory leak in mlx5dr_cmd_create_reformat_ctx
authorZhengchao Shao <shaozhengchao@huawei.com>
Wed, 5 Jul 2023 12:15:27 +0000 (20:15 +0800)
committerStefan Bader <stefan.bader@canonical.com>
Mon, 30 Oct 2023 10:59:52 +0000 (11:59 +0100)
BugLink: https://bugs.launchpad.net/bugs/2038236
[ Upstream commit 5dd77585dd9d0e03dd1bceb95f0269a7eaf6b936 ]

when mlx5_cmd_exec failed in mlx5dr_cmd_create_reformat_ctx, the memory
pointed by 'in' is not released, which will cause memory leak. Move memory
release after mlx5_cmd_exec.

Fixes: 1d9186476e12 ("net/mlx5: DR, Add direct rule command utilities")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c

index 7fbad87f475dfca5cc6fae5fbedd471d9467ebfd..14025470ca8fc46b97d1a955ddd0c1b3a1e07cf1 100644 (file)
@@ -545,11 +545,12 @@ int mlx5dr_cmd_create_reformat_ctx(struct mlx5_core_dev *mdev,
 
        err = mlx5_cmd_exec(mdev, in, inlen, out, sizeof(out));
        if (err)
-               return err;
+               goto err_free_in;
 
        *reformat_id = MLX5_GET(alloc_packet_reformat_context_out, out, packet_reformat_id);
-       kvfree(in);
 
+err_free_in:
+       kvfree(in);
        return err;
 }