]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/x86: dell-smbios: Fix error path in dell_smbios_init()
authorAleksandr Mishin <amishin@t-argos.ru>
Fri, 30 Aug 2024 06:54:28 +0000 (09:54 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Sep 2024 09:06:46 +0000 (11:06 +0200)
[ Upstream commit ffc17e1479e8e9459b7afa80e5d9d40d0dd78abb ]

In case of error in build_tokens_sysfs(), all the memory that has been
allocated is freed at end of this function. But then free_group() is
called which performs memory deallocation again.

Also, instead of free_group() call, there should be exit_dell_smbios_smm()
and exit_dell_smbios_wmi() calls, since there is initialization, but there
is no release of resources in case of an error.

Fix these issues by replacing free_group() call with
exit_dell_smbios_wmi() and exit_dell_smbios_smm().

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

Fixes: 33b9ca1e53b4 ("platform/x86: dell-smbios: Add a sysfs interface for SMBIOS tokens")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
Link: https://lore.kernel.org/r/20240830065428.9544-1-amishin@t-argos.ru
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/platform/x86/dell-smbios-base.c

index 3a1dbf199441385ec4066883bff10a7adb0d857a..98e77cb210b707713a9dac623f6e163a0ce2d384 100644 (file)
@@ -610,7 +610,10 @@ static int __init dell_smbios_init(void)
        return 0;
 
 fail_sysfs:
-       free_group(platform_device);
+       if (!wmi)
+               exit_dell_smbios_wmi();
+       if (!smm)
+               exit_dell_smbios_smm();
 
 fail_create_group:
        platform_device_del(platform_device);