summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorJunrui Luo <moonafterrain@outlook.com>2025-12-09 13:16:41 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-12-18 14:03:39 +0100
commit8f9e51cf2a2a43d0cd72d3dc0b5ccea3f639c187 (patch)
treec79bac53edf8032a46a5f2bc07fd46c5bad02b67 /sound
parentd48f75972d39537b837f569134e6fd1f05fcc27c (diff)
downloadlinux-8f9e51cf2a2a43d0cd72d3dc0b5ccea3f639c187.tar.gz
linux-8f9e51cf2a2a43d0cd72d3dc0b5ccea3f639c187.tar.bz2
linux-8f9e51cf2a2a43d0cd72d3dc0b5ccea3f639c187.zip
ALSA: firewire-motu: add bounds check in put_user loop for DSP events
[ Upstream commit 298e753880b6ea99ac30df34959a7a03b0878eed ] In the DSP event handling code, a put_user() loop copies event data. When the user buffer size is not aligned to 4 bytes, it could overwrite beyond the buffer boundary. Fix by adding a bounds check before put_user(). Suggested-by: Takashi Iwai <tiwai@suse.de> Fixes: 634ec0b2906e ("ALSA: firewire-motu: notify event for parameter change in register DSP model") Signed-off-by: Junrui Luo <moonafterrain@outlook.com> Link: https://patch.msgid.link/SYBPR01MB788112C72AF8A1C8C448B4B8AFA3A@SYBPR01MB7881.ausprd01.prod.outlook.com Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/firewire/motu/motu-hwdep.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/firewire/motu/motu-hwdep.c b/sound/firewire/motu/motu-hwdep.c
index 6675b23aad69..89dc436a0652 100644
--- a/sound/firewire/motu/motu-hwdep.c
+++ b/sound/firewire/motu/motu-hwdep.c
@@ -75,7 +75,7 @@ static long hwdep_read(struct snd_hwdep *hwdep, char __user *buf, long count,
while (consumed < count &&
snd_motu_register_dsp_message_parser_copy_event(motu, &ev)) {
ptr = (u32 __user *)(buf + consumed);
- if (put_user(ev, ptr))
+ if (consumed + sizeof(ev) > count || put_user(ev, ptr))
return -EFAULT;
consumed += sizeof(ev);
}