Revision d81916910f7498fe7a768697e0101d488f9fe665 authored by Yang Yingliang on 29 October 2022, 08:29:31 UTC, committed by Huacai Chen on 29 October 2022, 08:29:31 UTC
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: 6246ed09111f ("LoongArch: Add ACPI-based generic laptop driver")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
1 parent fbe605a
History
File Mode Size
Kconfig -rw-r--r-- 10.1 KB
Makefile -rw-r--r-- 2.5 KB
tegra186_asrc.c -rw-r--r-- 32.4 KB
tegra186_asrc.h -rw-r--r-- 4.5 KB
tegra186_dspk.c -rw-r--r-- 15.0 KB
tegra186_dspk.h -rw-r--r-- 1.7 KB
tegra20_ac97.c -rw-r--r-- 11.5 KB
tegra20_ac97.h -rw-r--r-- 3.3 KB
tegra20_das.c -rw-r--r-- 6.0 KB
tegra20_i2s.c -rw-r--r-- 12.5 KB
tegra20_i2s.h -rw-r--r-- 6.9 KB
tegra20_spdif.c -rw-r--r-- 10.8 KB
tegra20_spdif.h -rw-r--r-- 17.6 KB
tegra210_admaif.c -rw-r--r-- 26.2 KB
tegra210_admaif.h -rw-r--r-- 6.7 KB
tegra210_adx.c -rw-r--r-- 14.8 KB
tegra210_adx.h -rw-r--r-- 2.5 KB
tegra210_ahub.c -rw-r--r-- 39.9 KB
tegra210_ahub.h -rw-r--r-- 4.1 KB
tegra210_amx.c -rw-r--r-- 16.6 KB
tegra210_amx.h -rw-r--r-- 3.0 KB
tegra210_dmic.c -rw-r--r-- 15.5 KB
tegra210_dmic.h -rw-r--r-- 2.2 KB
tegra210_i2s.c -rw-r--r-- 26.6 KB
tegra210_i2s.h -rw-r--r-- 3.8 KB
tegra210_mbdrc.c -rw-r--r-- 30.7 KB
tegra210_mbdrc.h -rw-r--r-- 8.2 KB
tegra210_mixer.c -rw-r--r-- 18.9 KB
tegra210_mixer.h -rw-r--r-- 4.0 KB
tegra210_mvc.c -rw-r--r-- 20.3 KB
tegra210_mvc.h -rw-r--r-- 3.9 KB
tegra210_ope.c -rw-r--r-- 10.7 KB
tegra210_ope.h -rw-r--r-- 2.4 KB
tegra210_peq.c -rw-r--r-- 12.1 KB
tegra210_peq.h -rw-r--r-- 1.8 KB
tegra210_sfc.c -rw-r--r-- 87.3 KB
tegra210_sfc.h -rw-r--r-- 2.0 KB
tegra30_ahub.c -rw-r--r-- 18.0 KB
tegra30_ahub.h -rw-r--r-- 24.0 KB
tegra30_i2s.c -rw-r--r-- 14.9 KB
tegra30_i2s.h -rw-r--r-- 10.7 KB
tegra_asoc_machine.c -rw-r--r-- 23.8 KB
tegra_asoc_machine.h -rw-r--r-- 1.3 KB
tegra_audio_graph_card.c -rw-r--r-- 6.8 KB
tegra_cif.h -rw-r--r-- 1.9 KB
tegra_pcm.c -rw-r--r-- 5.8 KB
tegra_pcm.h -rw-r--r-- 1.4 KB
tegra_wm8903.c -rw-r--r-- 5.3 KB

back to top