vinput: Fix incorrect handling on raw_copy_to_user() failure

When raw_copy_to_user() failed in vinput_read(), the function would set
'count' to -EFAULT and then subtract EFAULT from '*offset'. However,
modifying '*offset' on raw_copy_to_user() failure was incorrect. Fix
this behavior by changing count = -EFAULT to return -EFAULT.
This commit is contained in:
Kuan-Wei Chiu 2024-05-09 01:12:39 +08:00
parent c068fa47e9
commit 0a23ecd027

View File

@ -106,7 +106,7 @@ static ssize_t vinput_read(struct file *file, char __user *buffer, size_t count,
count = len - *offset;
if (raw_copy_to_user(buffer, buff + *offset, count))
count = -EFAULT;
return -EFAULT;
*offset += count;