]> git.baikalelectronics.ru Git - kernel.git/commit
platform/loongarch: laptop: Fix possible UAF and simplify generic_acpi_laptop_init()
authorYang Yingliang <yangyingliang@huawei.com>
Sat, 29 Oct 2022 08:29:31 +0000 (16:29 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Sat, 29 Oct 2022 08:29:31 +0000 (16:29 +0800)
commitb04f652e4edc1472ab4a1419595781c66007d060
treef5e4acc79381de7867a57ae8b2e5fb3b414035ce
parentfbf879129bfc4f8d25a11066f1a4e444e01e9327
platform/loongarch: laptop: Fix possible UAF and simplify generic_acpi_laptop_init()

Currently the return value of 'sub_driver->init' is not checked. If
sparse_keymap_setup() called in the init function fails, 'generic_
inputdev' is freed, then it will lead a UAF when using it in generic_
acpi_laptop_init(). Fix it by checking the return value and setting
generic_inputdev to NULL after free, so as to avoid double free it.

The error code in generic_subdriver_init() is always negative, so the
return of generic_subdriver_init() can be simplified.

Fixes: 8fa7bad52946 ("LoongArch: Add ACPI-based generic laptop driver")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
drivers/platform/loongarch/loongson-laptop.c