OpenCloudOS-Kernel/sound/soc
Gergo Koteles 9c75601926 ASoC: tas2781: check the validity of prm_no/cfg_no
commit f32c80d34249e1cfb2e647ab3c8ef38a460c787f upstream.

Add additional checks for program/config numbers to avoid loading from
invalid addresses.

If prm_no/cfg_no is negative, skip uploading program/config.

The tas2781-hda driver caused a NULL pointer dereference after loading
module, and before first runtime_suspend.

the state was:
tas_priv->cur_conf = -1;
tas_priv->tasdevice[i].cur_conf = 0;
program = &(tas_fmw->programs[-1]);

BUG: kernel NULL pointer dereference, address: 0000000000000010
Call Trace:
 <TASK>
 ? __die+0x23/0x70
 ? page_fault_oops+0x171/0x4e0
 ? vprintk_emit+0x175/0x2b0
 ? exc_page_fault+0x7f/0x180
 ? asm_exc_page_fault+0x26/0x30
 ? tasdevice_load_block_kernel+0x21/0x310 [snd_soc_tas2781_fmwlib]
 tasdevice_select_tuningprm_cfg+0x268/0x3a0 [snd_soc_tas2781_fmwlib]
 tasdevice_tuning_switch+0x69/0x710 [snd_soc_tas2781_fmwlib]
 tas2781_hda_playback_hook+0xd4/0x110 [snd_hda_scodec_tas2781_i2c]

Fixes: 915f5eadeb ("ASoC: tas2781: firmware lib")
CC:  <stable@vger.kernel.org>
Signed-off-by: Gergo Koteles <soyer@irl.hu>
Link: https://msgid.link/r/523780155bfdca9bc0acd39efc79ed039454818d.1702591356.git.soyer@irl.hu
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-01 12:42:40 +00:00
..
adi ASoC: adi: merge DAI call back functions into ops 2023-08-14 13:10:03 +01:00
amd ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA 2023-12-13 18:45:19 +01:00
apple ASoC: apple: mca: Convert to platform remove callback returning void 2023-03-20 13:07:18 +00:00
atmel ASoC: dmaengine: Drop unused iov_iter for process callback 2023-09-01 15:38:29 +02:00
au1x ASoC: au1x: merge DAI call back functions into ops 2023-08-14 13:10:15 +01:00
bcm ASoC: bcm: merge DAI call back functions into ops 2023-08-14 13:10:06 +01:00
cirrus ASoC: cirrus: merge DAI call back functions into ops 2023-08-14 13:10:22 +01:00
codecs ASoC: tas2781: check the validity of prm_no/cfg_no 2024-01-01 12:42:40 +00:00
dwc ASoC: dwc: Fix non-DT instantiation 2023-10-13 18:40:27 +01:00
fsl ASoC: fsl_sai: Fix channel swap issue on i.MX8MP 2024-01-01 12:42:34 +00:00
generic ASoC: simple-card: fixup asoc_simple_probe() error handling 2023-09-19 13:48:38 +01:00
google ASoC: Add Google Chameleon v3 i2s driver 2023-05-17 10:37:07 +09:00
hisilicon ASoC: hisilicon: merge DAI call back functions into ops 2023-08-14 13:10:30 +01:00
img ASoC: img: merge DAI call back functions into ops 2023-08-14 13:10:08 +01:00
intel ASoC: Intel: soc-acpi-cht: Add Lenovo Yoga Tab 3 Pro YT3-X90 quirk 2023-11-28 17:19:44 +00:00
jz4740 ASoC: jz4740: merge DAI call back functions into ops 2023-08-14 13:10:21 +01:00
kirkwood ASoC: kirkwood: kirkwood-i2s: Convert to platform remove callback returning void 2023-03-20 13:08:35 +00:00
loongson ASoC: loongson: merge DAI call back functions into ops 2023-08-14 13:10:28 +01:00
mediatek ASoC: mediatek: mt8188-mt6359: support dynamic pinctrl 2023-11-28 17:19:42 +00:00
meson ASoC: meson: spdifin: start hw on dai probe 2023-09-11 01:23:53 +01:00
mxs ASoC: mxs: mxs-sgtl5000: Convert to platform remove callback returning void 2023-03-20 13:08:44 +00:00
pxa ASoC: pxa: fix a memory leak in probe() 2023-10-09 13:13:50 +01:00
qcom ASoC: qcom: sc8280xp: Limit speaker digital volumes 2023-12-13 18:45:35 +01:00
rockchip ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warning 2023-08-15 19:23:00 +01:00
samsung ASoC: samsung: tm2_wm5110: parse audio-routing 2023-08-16 14:47:20 +01:00
sh ASoC: rsnd: add missing of_node_put 2023-09-11 01:23:54 +01:00
sof ASoC: SOF: ipc4: handle EXCEPTION_CAUGHT notification from firmware 2023-11-28 17:19:42 +00:00
spear
sprd ASoC: sprd: sprd-mcdt: Convert to platform remove callback returning void 2023-03-20 13:09:02 +00:00
starfive ASoC: starfive: merge DAI call back functions into ops 2023-08-14 13:10:29 +01:00
sti ASoC: sti: merge DAI call back functions into ops 2023-08-14 13:10:10 +01:00
stm ASoC: dmaengine: Drop unused iov_iter for process callback 2023-09-01 15:38:29 +02:00
sunxi ASoC: sunxi: merge DAI call back functions into ops 2023-08-14 13:10:17 +01:00
tegra ASoC: tegra: Fix redundant PLLA and PLLA_OUT0 updates 2023-09-11 01:23:51 +01:00
ti ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings 2023-11-28 17:19:47 +00:00
uniphier ASoC: uniphier: merge DAI call back functions into ops 2023-08-14 13:10:27 +01:00
ux500 ASoC: ux500: merge DAI call back functions into ops 2023-08-14 13:10:16 +01:00
xilinx ASoC: xilinx: xlnx_spdif: Convert to platform remove callback returning void 2023-03-20 13:09:34 +00:00
xtensa ASoC: xtensa: xtfpga-i2s: Convert to platform remove callback returning void 2023-03-20 13:09:35 +00:00
Kconfig ASoC: topology: Add explicit build option 2023-07-18 15:19:03 +01:00
Makefile ASoC: Add support for Loongson I2S controller 2023-06-15 13:53:24 +01:00
soc-ac97.c ASoC: soc-ac97: Return correct error codes 2023-02-15 16:09:07 +00:00
soc-acpi.c ASoC: soc-acpi: improve log messagesin link_slaves_found() 2023-07-31 23:24:01 +01:00
soc-card.c
soc-component.c ASoC: soc-dapm: Add helper for comparing widget name 2023-10-09 13:03:28 +01:00
soc-compress.c ASoC: Fixes that got left after v6.4 2023-08-28 16:56:54 +02:00
soc-core.c ASoC: core: Do not call link_exit() on uninitialized rtd objects 2023-09-29 14:17:49 +02:00
soc-dai.c ASoC: soc-dai: add flag to mute and unmute stream during trigger 2023-11-28 17:20:04 +00:00
soc-dapm.c ASoC: dapm: fix clock get name 2023-11-20 11:59:37 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: soc-generic-dmaengine-pcm: Fix function name in comment 2023-09-22 17:33:04 +01:00
soc-jack.c ASoC: soc-jack: calling snd_soc_jack_report causes a null pointer access 2023-08-14 22:10:35 +01:00
soc-link.c
soc-ops.c ASoC: ops: add correct range check for limiting volume 2023-12-13 18:45:31 +01:00
soc-pcm.c ASoC: soc-dai: add flag to mute and unmute stream during trigger 2023-11-28 17:20:04 +00:00
soc-topology-test.c
soc-topology.c ASoC: Updates for v6.6 2023-08-28 16:13:03 +02:00
soc-utils-test.c
soc-utils.c ASoC: soc-utils: Export snd_soc_dai_is_dummy() symbol 2023-09-11 01:23:50 +01:00