mlxsw: minimal: fix potential memory leak in mlxsw_m_linecards_init
authorZhengchao Shao <shaozhengchao@huawei.com>
Fri, 30 Jun 2023 01:26:47 +0000 (09:26 +0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 30 Jun 2023 02:10:07 +0000 (19:10 -0700)
The line cards array is not freed in the error path of
mlxsw_m_linecards_init(), which can lead to a memory leak. Fix by
freeing the array in the error path, thereby making the error path
identical to mlxsw_m_linecards_fini().

Fixes: 01328e23a476 ("mlxsw: minimal: Extend module to port mapping with slot index")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://lore.kernel.org/r/20230630012647.1078002-1-shaozhengchao@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlxsw/minimal.c

index 6b56ead..6b98c32 100644 (file)
@@ -417,6 +417,7 @@ static int mlxsw_m_linecards_init(struct mlxsw_m *mlxsw_m)
 err_kmalloc_array:
        for (i--; i >= 0; i--)
                kfree(mlxsw_m->line_cards[i]);
+       kfree(mlxsw_m->line_cards);
 err_kcalloc:
        kfree(mlxsw_m->ports);
        return err;