Skip to content

Commit 298e753

Browse files
avasummertiwai
authored andcommitted
ALSA: firewire-motu: add bounds check in put_user loop for DSP events
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: 634ec0b ("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>
1 parent 9a97857 commit 298e753

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

sound/firewire/motu/motu-hwdep.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ static long hwdep_read(struct snd_hwdep *hwdep, char __user *buf, long count,
7575
while (consumed < count &&
7676
snd_motu_register_dsp_message_parser_copy_event(motu, &ev)) {
7777
ptr = (u32 __user *)(buf + consumed);
78-
if (put_user(ev, ptr))
78+
if (consumed + sizeof(ev) > count || put_user(ev, ptr))
7979
return -EFAULT;
8080
consumed += sizeof(ev);
8181
}

0 commit comments

Comments
 (0)