Re: [PATCH] platform/x86: int1092: Fix potential memory leak in sar_probe()

From: Ilpo Järvinen

Date: Thu Jul 09 2026 - 07:36:50 EST


On Tue, 7 Jul 2026, Abdun Nihaal wrote:

> The memory allocated for device_mode_info in parse_package() called by
> sar_get_data() is not freed in some of the error paths in sar_probe().
> Fix that by adding the corresponding free in the error path.
>
> Fixes: dcfbd31ef4bc ("platform/x86: BIOS SAR driver for Intel M.2 Modem")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Abdun Nihaal <nihaal@xxxxxxxxxxxxxx>
> ---
> drivers/platform/x86/intel/int1092/intel_sar.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/x86/intel/int1092/intel_sar.c b/drivers/platform/x86/intel/int1092/intel_sar.c
> index 849f7b415c1e..b27fc07c087a 100644
> --- a/drivers/platform/x86/intel/int1092/intel_sar.c
> +++ b/drivers/platform/x86/intel/int1092/intel_sar.c
> @@ -273,13 +273,13 @@ static int sar_probe(struct platform_device *device)
> if (sar_get_device_mode(device) != AE_OK) {
> dev_err(&device->dev, "Failed to get device mode\n");
> result = -EIO;
> - goto r_free;
> + goto r_sar;
> }
>
> result = sysfs_create_group(&device->dev.kobj, &intcsar_group);
> if (result) {
> dev_err(&device->dev, "sysfs creation failed\n");
> - goto r_free;
> + goto r_sar;
> }
>
> if (acpi_install_notify_handler(ACPI_HANDLE(&device->dev), ACPI_DEVICE_NOTIFY,
> @@ -292,6 +292,9 @@ static int sar_probe(struct platform_device *device)
>
> r_sys:
> sysfs_remove_group(&device->dev.kobj, &intcsar_group);
> +r_sar:
> + for (reg = 0; reg < MAX_REGULATORY; reg++)
> + kfree(context->config_data[reg].device_mode_info);
> r_free:
> kfree(context);

How about try to do this with devm allocs instead (context itself
included)? I think results would be much better with it.

--
i.