linux-stable/sound
Takashi Iwai a3dd4d63ee ALSA: usb-audio: Fix out of bounds reads when finding clock sources
The current USB-audio driver code doesn't check bLength of each
descriptor at traversing for clock descriptors.  That is, when a
device provides a bogus descriptor with a shorter bLength, the driver
might hit out-of-bounds reads.

For addressing it, this patch adds sanity checks to the validator
functions for the clock descriptor traversal.  When the descriptor
length is shorter than expected, it's skipped in the loop.

For the clock source and clock multiplier descriptors, we can just
check bLength against the sizeof() of each descriptor type.
OTOH, the clock selector descriptor of UAC2 and UAC3 has an array
of bNrInPins elements and two more fields at its tail, hence those
have to be checked in addition to the sizeof() check.

Reported-by: Benoît Sevens <bsevens@google.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/20241121140613.3651-1-bsevens@google.com
Link: https://patch.msgid.link/20241125144629.20757-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-11-25 15:48:22 +01:00
..
ac97 ALSA: ac97: bus: Fix the mistake in the comment 2024-11-20 12:42:01 +01:00
aoa ALSA: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-09-20 17:44:52 +02:00
arm sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
atmel sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
core ALSA: rawmidi: Fix kvfree() call in spinlock 2024-11-25 15:48:05 +01:00
drivers sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
firewire Merge branch 'for-linus' into for-next 2024-11-05 13:03:12 +01:00
hda ASoC: Fixes for v6.12 2024-10-30 14:46:35 +01:00
i2c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
isa ALSA: gus: Fix some error handling paths related to get_bpos() usage 2024-10-04 09:02:30 +02:00
mips sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
oss sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
parisc ALSA: misc: Use *-y instead of *-objs in Makefile 2024-05-08 18:18:13 +02:00
pci ALSA: hda/realtek: Fix Internal Speaker and Mic boost of Infinix Y4 Max 2024-11-25 15:41:38 +01:00
pcmcia ALSA: vxpocket: Fix a typo at conversion to dev_*() 2024-08-08 20:23:41 +02:00
ppc sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
sh sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
soc ASoC: hdmi-codec: reorder channel allocation list 2024-11-15 13:43:00 +00:00
sparc sound: Switch back to struct platform_driver::remove() 2024-10-30 14:47:59 +01:00
spi ALSA: spi: Drop NULL check for snd_ctl_remove() 2024-06-18 12:54:34 +02:00
synth ALSA: emux: Use standard print API 2024-08-08 07:49:46 +02:00
usb ALSA: usb-audio: Fix out of bounds reads when finding clock sources 2024-11-25 15:48:22 +01:00
virtio virtio: rename virtio_find_vqs_info() to virtio_find_vqs() 2024-07-17 05:20:58 -04:00
x86 Merge drm/drm-next into drm-intel-next 2024-06-19 11:38:31 +03:00
xen ALSA: xen-front: remove unused struct 'alsa_sndif_hw_param' 2024-06-13 14:14:46 +02:00
ac97_bus.c ALSA: ac97: legacy: Add missing module description 2024-05-09 10:13:07 +02:00
Kconfig sound: Make CONFIG_SND depend on INDIRECT_IOMEM instead of UML 2024-10-10 16:11:18 +02:00
last.c
Makefile ALSA: core: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:32 +02:00
sound_core.c sound: make all 'class' structures const 2023-06-21 07:29:10 +02:00