linux/sound
Shipei Qu 2168866396 ALSA: usb-mixer: us16x08: validate meter packet indices
[ Upstream commit 5526c1c6ba ]

get_meter_levels_from_urb() parses the 64-byte meter packets sent by
the device and fills the per-channel arrays meter_level[],
comp_level[] and master_level[] in struct snd_us16x08_meter_store.

Currently the function derives the channel index directly from the
meter packet (MUB2(meter_urb, s) - 1) and uses it to index those
arrays without validating the range. If the packet contains a
negative or out-of-range channel number, the driver may write past
the end of these arrays.

Introduce a local channel variable and validate it before updating the
arrays. We reject negative indices, limit meter_level[] and
comp_level[] to SND_US16X08_MAX_CHANNELS, and guard master_level[]
updates with ARRAY_SIZE(master_level).

Fixes: d2bb390a20 ("ALSA: usb-audio: Tascam US-16x08 DSP mixer quirk")
Reported-by: DARKNAVY (@DarkNavyOrg) <vr@darknavy.com>
Closes: https://lore.kernel.org/tencent_21C112743C44C1A2517FF219@qq.com
Signed-off-by: Shipei Qu <qu@darknavy.com>
Link: https://patch.msgid.link/20251217024630.59576-1-qu@darknavy.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-01-19 13:09:46 +01:00
..
ac97 bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
aoa ALSA: aoa: Fix I2S device accounting 2022-11-03 23:59:18 +09:00
arm ALSA: pxa2xx: Use managed PCM buffer allocation 2021-08-04 08:08:21 +02:00
atmel ALSA: atmel: ac97: clarify operator precedence 2020-09-03 09:27:34 +02:00
core ALSA: pcm: Rewrite recalculate_boundary() to avoid costly loop 2025-08-28 16:24:19 +02:00
drivers ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt 2022-12-31 13:14:16 +01:00
firewire ALSA: dice: fix buffer overflow in detect_stream_formats() 2026-01-19 13:09:40 +01:00
hda ASoC: Intel: sst: Support LPE0F28 ACPI HID 2024-12-14 19:50:39 +01:00
i2c ALSA: i2c/cs8427: fix iec958 mixer control deactivation 2023-04-20 12:13:51 +02:00
isa ALSA: sb: Force to disable DMAs once when DMA mode is changed 2025-07-10 15:57:46 +02:00
mips ALSA: n64: check return value after calling platform_get_resource() 2021-06-12 09:31:13 +02:00
oss sound/oss/dmasound: fix 'dmasound_setup' defined but not used 2023-05-11 23:00:40 +09:00
parisc parisc architecture updates for kernel 5.15: 2021-09-02 13:16:00 -07:00
pci ALSA: hda/realtek: Audio disappears on HP 15-fc000 after warm boot again 2025-12-07 06:09:25 +09:00
pcmcia ALSA: pcmcia: Fix resource leak in snd_pdacf_probe error path 2026-01-19 13:09:46 +01:00
ppc ALSA: ppc: fix error return code in snd_pmac_probe() 2021-06-16 08:52:29 +02:00
sh ALSA: sh: SND_AICA should depend on SH_DMA_API 2025-05-22 14:08:22 +02:00
soc ASoC: fsl_xcvr: get channel status data when PHY is not exists 2026-01-19 13:09:40 +01:00
sparc ALSA: sparc: Fix assignment in if condition 2021-06-09 17:30:29 +02:00
spi ALSA: spi: Add check for clk_enable() 2022-04-08 14:23:19 +02:00
synth ALSA: emux: improve patch ioctl data validation 2024-07-05 09:14:43 +02:00
usb ALSA: usb-mixer: us16x08: validate meter packet indices 2026-01-19 13:09:46 +01:00
virtio sound/virtio: Fix cancel_sync warnings on uninitialized work_structs 2025-05-02 07:44:35 +02:00
x86 ALSA: intel_hdmi: Fix off-by-one error in __hdmi_lpe_audio_probe() 2025-08-28 16:24:14 +02:00
xen module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
ac97_bus.c ALSA: ac97: Treat snd_ac97_bus_ops as const 2020-01-03 09:24:08 +01:00
Kconfig sound: Make CONFIG_SND depend on INDIRECT_IOMEM instead of UML 2024-11-17 15:06:25 +01:00
last.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
Makefile ALSA: virtio: add virtio sound driver 2021-03-07 09:07:16 +01:00
sound_core.c sound: fix a memory leak bug 2019-08-08 08:18:32 +02:00