[PATCH] ALSA: pcmtest: Return -EFAULT on pattern read copy failure

Cássio Gabriel posted 1 patch 1 month, 1 week ago
sound/drivers/pcmtest.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
[PATCH] ALSA: pcmtest: Return -EFAULT on pattern read copy failure
Posted by Cássio Gabriel 1 month, 1 week ago
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>
---
 sound/drivers/pcmtest.c | 6 +++---
 1 file 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;
 }

---
base-commit: 9e8d6ddd7ecf2ad42d614243f86e50fcf0183b9e
change-id: 20260501-alsa-pcmtest-pattern-read-efault-8b9f131ae7fd

Best regards,
--  
Cássio Gabriel <cassiogabrielcontato@gmail.com>

Re: [PATCH] ALSA: pcmtest: Return -EFAULT on pattern read copy failure
Posted by Takashi Iwai 1 month, 1 week ago
On Fri, 01 May 2026 19:45:14 +0200,
Cássio Gabriel wrote:
> 
> 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>

Applied now.  Thanks.


Takashi