]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/mlx5: Fix memory leak in error flow of port set buffer
authorMaher Sanalla <msanalla@nvidia.com>
Tue, 17 Jan 2023 12:54:36 +0000 (14:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Dec 2025 21:12:36 +0000 (06:12 +0900)
commit e3e01c1c15986f9531b854634eec8381e72cb605 upstream.

In the cited commit, shared buffer updates were added whenever
port buffer gets updated.

However, in case the shared buffer update fails, exiting early from
port_set_buffer() is performed without freeing previously-allocated memory.

Fix it by jumping to out label where memory is freed before returning
with error.

Fixes: a440030d8946 ("net/mlx5e: Update shared buffer along with device buffer changes")
Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c

index 9be06df2d6e82e24c642f65a48e607a01a1d1475..e72b2ede497891228093e39b18b6696037eed020 100644 (file)
@@ -325,11 +325,11 @@ static int port_set_buffer(struct mlx5e_priv *priv,
        err = port_update_shared_buffer(priv->mdev, current_headroom_size,
                                        new_headroom_size);
        if (err)
-               return err;
+               goto out;
 
        err = port_update_pool_cfg(priv->mdev, port_buffer);
        if (err)
-               return err;
+               goto out;
 
        err = mlx5e_port_set_pbmc(mdev, in);
 out: