net: wwan: iosm: Fix tainted pointer delete is case of region creation fail

In case of region creation fail in ipc_devlink_create_region(), previously
created regions delete process starts from tainted pointer which actually
holds error code value.
Fix this bug by decreasing region index before delete.

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

Fixes: 4dcd183fbd ("net: wwan: iosm: devlink registration")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
Acked-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20240604082500.20769-1-amishin@t-argos.ru
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Aleksandr Mishin 2024-06-04 11:25:00 +03:00 committed by Paolo Abeni
parent 5899c88513
commit b0c9a26435

View File

@ -211,7 +211,7 @@ static int ipc_devlink_create_region(struct iosm_devlink *devlink)
rc = PTR_ERR(devlink->cd_regions[i]); rc = PTR_ERR(devlink->cd_regions[i]);
dev_err(devlink->dev, "Devlink region fail,err %d", rc); dev_err(devlink->dev, "Devlink region fail,err %d", rc);
/* Delete previously created regions */ /* Delete previously created regions */
for ( ; i >= 0; i--) for (i--; i >= 0; i--)
devlink_region_destroy(devlink->cd_regions[i]); devlink_region_destroy(devlink->cd_regions[i]);
goto region_create_fail; goto region_create_fail;
} }