net/mlx5: Move ttc allocation after switch case to prevent leaks
[ Upstream commit fa8fd315127ca48c65e7e6692a84ffcf3d07168e ]
Relocate the memory allocation for ttc table after the switch statement
that validates params->ns_type in both mlx5_create_inner_ttc_table() and
mlx5_create_ttc_table(). This ensures memory is only allocated after
confirming valid input, eliminating potential memory leaks when invalid
ns_type cases occur.
Fixes: 137f3d50ad ("net/mlx5: Support matching on l4_type for ttc_table")
Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Link: https://patch.msgid.link/20250418023814.71789-3-bsdhenrymartin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0b682680b1
commit
fdd2a03561
@@ -618,10 +618,6 @@ struct mlx5_ttc_table *mlx5_create_inner_ttc_table(struct mlx5_core_dev *dev,
|
||||
bool use_l4_type;
|
||||
int err;
|
||||
|
||||
ttc = kvzalloc(sizeof(*ttc), GFP_KERNEL);
|
||||
if (!ttc)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
switch (params->ns_type) {
|
||||
case MLX5_FLOW_NAMESPACE_PORT_SEL:
|
||||
use_l4_type = MLX5_CAP_GEN_2(dev, pcc_ifa2) &&
|
||||
@@ -635,6 +631,10 @@ struct mlx5_ttc_table *mlx5_create_inner_ttc_table(struct mlx5_core_dev *dev,
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
ttc = kvzalloc(sizeof(*ttc), GFP_KERNEL);
|
||||
if (!ttc)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
ns = mlx5_get_flow_namespace(dev, params->ns_type);
|
||||
if (!ns) {
|
||||
kvfree(ttc);
|
||||
@@ -696,10 +696,6 @@ struct mlx5_ttc_table *mlx5_create_ttc_table(struct mlx5_core_dev *dev,
|
||||
bool use_l4_type;
|
||||
int err;
|
||||
|
||||
ttc = kvzalloc(sizeof(*ttc), GFP_KERNEL);
|
||||
if (!ttc)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
switch (params->ns_type) {
|
||||
case MLX5_FLOW_NAMESPACE_PORT_SEL:
|
||||
use_l4_type = MLX5_CAP_GEN_2(dev, pcc_ifa2) &&
|
||||
@@ -713,6 +709,10 @@ struct mlx5_ttc_table *mlx5_create_ttc_table(struct mlx5_core_dev *dev,
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
ttc = kvzalloc(sizeof(*ttc), GFP_KERNEL);
|
||||
if (!ttc)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
ns = mlx5_get_flow_namespace(dev, params->ns_type);
|
||||
if (!ns) {
|
||||
kvfree(ttc);
|
||||
|
||||
Reference in New Issue
Block a user