On 31/08/2017 7:30 PM, Colin King wrote:
From: Colin Ian King <colin.k...@canonical.com>

The structures hca_param and func_cap are not being kfree'd on an error
exit path causing two memory leaks. Fix this by jumping to the existing
free memory error exit path.

Detected by CoverityScan, CID#1455219, CID#1455224 ("Resource Leak")

Fixes: c73c8b1e47ca ("net/mlx4_core: Dynamically allocate structs at 
mlx4_slave_cap")
Signed-off-by: Colin Ian King <colin.k...@canonical.com>
---
  drivers/net/ethernet/mellanox/mlx4/main.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c 
b/drivers/net/ethernet/mellanox/mlx4/main.c
index 1c92101b3ec2..d46f3283ec36 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -977,7 +977,8 @@ static int mlx4_slave_cap(struct mlx4_dev *dev)
        if (dev->caps.num_ports > MLX4_MAX_PORTS) {
                mlx4_err(dev, "HCA has %d ports, but we only support %d, 
aborting\n",
                         dev->caps.num_ports, MLX4_MAX_PORTS);
-               return -ENODEV;
+               err = -ENODEV;
+               goto free_mem;
        }
mlx4_replace_zero_macs(dev);


Acked-by: Tariq Toukan <tar...@mellanox.com>

Thanks Colin!

Reply via email to