Message ID | 20230630014903.1082615-2-shaozhengchao@huawei.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | fix two memory leak issues for mlx5en driver | expand |
On Fri, 30 Jun, 2023 09:49:02 +0800 Zhengchao Shao <shaozhengchao@huawei.com> wrote: > The memory pointed to by the fs->any pointer is not freed in the error > path of mlx5e_fs_tt_redirect_any_create, which can lead to a memory leak. > Fix by freeing the memory in the error path, thereby making the error path > identical to mlx5e_fs_tt_redirect_any_destroy(). > > Fixes: 0f575c20bf06 ("net/mlx5e: Introduce Flow Steering ANY API") > Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> > Reviewed-by: Simon Horman <simon.horman@corigine.com> > --- > v2: update the 'any' member reference in fs to NULL before free fs_any > --- Thank you for contributing. Reviewed-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c b/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c index 03cb79adf912..be83ad9db82a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c @@ -594,7 +594,7 @@ int mlx5e_fs_tt_redirect_any_create(struct mlx5e_flow_steering *fs) err = fs_any_create_table(fs); if (err) - return err; + goto err_free_any; err = fs_any_enable(fs); if (err) @@ -606,8 +606,8 @@ int mlx5e_fs_tt_redirect_any_create(struct mlx5e_flow_steering *fs) err_destroy_table: fs_any_destroy_table(fs_any); - - kfree(fs_any); +err_free_any: mlx5e_fs_set_any(fs, NULL); + kfree(fs_any); return err; }