mlxsw: core_linecards: Fix double memory deallocation in case of invalid INI file
authorAleksandr Mishin <amishin@t-argos.ru>
Wed, 3 Jul 2024 20:32:51 +0000 (23:32 +0300)
committerJakub Kicinski <kuba@kernel.org>
Thu, 4 Jul 2024 14:34:42 +0000 (07:34 -0700)
In case of invalid INI file mlxsw_linecard_types_init() deallocates memory
but doesn't reset pointer to NULL and returns 0. In case of any error
occurred after mlxsw_linecard_types_init() call, mlxsw_linecards_init()
calls mlxsw_linecard_types_fini() which performs memory deallocation again.

Add pointer reset to NULL.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: b217127e5e4e ("mlxsw: core_linecards: Add line card objects and implement provisioning")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Michal Kubiak <michal.kubiak@intel.com>
Link: https://patch.msgid.link/20240703203251.8871-1-amishin@t-argos.ru
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlxsw/core_linecards.c

index 025e0db..b032d5a 100644 (file)
@@ -1484,6 +1484,7 @@ err_type_file_file_validate:
        vfree(types_info->data);
 err_data_alloc:
        kfree(types_info);
+       linecards->types_info = NULL;
        return err;
 }