linux/sound/core/oss
Takashi Iwai 10217da964 ALSA: pcm: Fix race of buffer access at PCM OSS layer
commit 93a81ca065 upstream.

The PCM OSS layer tries to clear the buffer with the silence data at
initialization (or reconfiguration) of a stream with the explicit call
of snd_pcm_format_set_silence() with runtime->dma_area.  But this may
lead to a UAF because the accessed runtime->dma_area might be freed
concurrently, as it's performed outside the PCM ops.

For avoiding it, move the code into the PCM core and perform it inside
the buffer access lock, so that it won't be changed during the
operation.

Reported-by: syzbot+32d4647f551007595173@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/68164d8e.050a0220.11da1b.0019.GAE@google.com
Cc: <stable@vger.kernel.org>
Link: https://patch.msgid.link/20250516080817.20068-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-06-04 14:38:06 +02:00
..
copy.c ALSA: Kill snd_assert() in sound/core/* 2008-08-13 11:46:35 +02:00
io.c ALSA: pcm: Build OSS writev/readv helpers conditionally 2017-06-02 19:38:26 +02:00
linear.c ALSA: pcm: oss: Avoid potential buffer overflows 2019-12-04 15:51:30 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mixer_oss.c ALSA: mixer_oss: Remove some incorrect kfree_const() usages 2024-10-17 15:11:23 +02:00
mulaw.c ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check 2020-09-01 15:18:33 +02:00
pcm_oss.c ALSA: pcm: Fix race of buffer access at PCM OSS layer 2025-06-04 14:38:06 +02:00
pcm_plugin.c ALSA: oss: Fix PCM OSS buffer allocation overflow 2022-03-28 09:58:43 +02:00
pcm_plugin.h ALSA: oss: avoid missing-prototype warnings 2023-06-09 10:32:26 +02:00
rate.c ALSA: oss: Use DIV_ROUND_CLOSEST() instead of open-coding it 2020-12-25 09:11:54 +01:00
route.c ALSA: pcm: oss: Avoid potential buffer overflows 2019-12-04 15:51:30 +01:00