mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-23 22:34:21 +08:00
d939cd96b9
On some system the WMI GUIDs used by dell-wmi-sysman are present but there
are no enum type attributes, this causes init_bios_attributes() to return
-ENODEV, after which sysman_init() does a "goto fail_create_group" and then
calls release_attributes_data().
release_attributes_data() calls kset_unregister(wmi_priv.main_dir_kset);
but before this commit it was missing a "wmi_priv.main_dir_kset = NULL;"
statement; and after calling release_attributes_data() the sysman_init()
error handling does this:
if (wmi_priv.main_dir_kset) {
kset_unregister(wmi_priv.main_dir_kset);
wmi_priv.main_dir_kset = NULL;
}
Which causes a second kset_unregister(wmi_priv.main_dir_kset), leading to
a double-free, which causes a crash.
Add the missing "wmi_priv.main_dir_kset = NULL;" statement to
release_attributes_data() to fix this double-free crash.
Fixes:
|
||
---|---|---|
.. | ||
dell-wmi-sysman | ||
alienware-wmi.c | ||
dcdbas.c | ||
dcdbas.h | ||
dell_rbu.c | ||
dell-laptop.c | ||
dell-rbtn.c | ||
dell-rbtn.h | ||
dell-smbios-base.c | ||
dell-smbios-smm.c | ||
dell-smbios-wmi.c | ||
dell-smbios.h | ||
dell-smo8800.c | ||
dell-wmi-aio.c | ||
dell-wmi-descriptor.c | ||
dell-wmi-descriptor.h | ||
dell-wmi-led.c | ||
dell-wmi.c | ||
Kconfig | ||
Makefile |