diff options
| author | Cássio Gabriel <cassiogabrielcontato@gmail.com> | 2026-05-01 20:45:14 +0300 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2026-05-04 14:26:23 +0300 |
| commit | 359b626d362127451dbe8a687ac5c240f896ae2e (patch) | |
| tree | 9daf8f53dc3c9ad1c9c4e4d8e6ab87446856a1f2 | |
| parent | ad39a189bfebb3de580f390bc000f9e121c6aca3 (diff) | |
| download | linux-359b626d362127451dbe8a687ac5c240f896ae2e.tar.xz | |
ALSA: pcmtest: Return -EFAULT on pattern read copy failure
pattern_write() reports -EFAULT when copy_from_user() fails, but
pattern_read() converts copy_to_user() failures into a zero-length read.
That makes a userspace buffer fault look like EOF instead of reporting the
actual error.
Return -EFAULT from pattern_read() when copying the pattern data to
userspace fails, and update the file offset only after a successful copy.
Fixes: 315a3d57c64c ("ALSA: Implement the new Virtual PCM Test Driver")
Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
Link: https://patch.msgid.link/20260501-alsa-pcmtest-pattern-read-efault-v1-1-53e1e8c11dda@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
| -rw-r--r-- | sound/drivers/pcmtest.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/drivers/pcmtest.c b/sound/drivers/pcmtest.c index 5bfec4c7bf71..7f93557b51ec 100644 --- a/sound/drivers/pcmtest.c +++ b/sound/drivers/pcmtest.c @@ -679,9 +679,9 @@ static ssize_t pattern_read(struct file *file, char __user *u_buff, size_t len, return 0; if (copy_to_user(u_buff, patt_buf->buf + *off, to_read)) - to_read = 0; - else - *off += to_read; + return -EFAULT; + + *off += to_read; return to_read; } |
