wifi: rtw88: fix incorrect error codes in rtw_debugfs_copy_from_user
authorZhang Shurong <zhang_shurong@foxmail.com>
Wed, 26 Apr 2023 17:02:20 +0000 (01:02 +0800)
committerKalle Valo <kvalo@kernel.org>
Fri, 5 May 2023 07:38:08 +0000 (10:38 +0300)
If there is a failure during copy_from_user or user-provided data
buffer is invalid, rtw_debugfs_copy_from_user should return negative
error code instead of a positive value count.

Fix this bug by returning correct error code. Moreover, the check
of buffer against null is removed since it will be handled by
copy_from_user.

Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/tencent_D2EB102CC7435C0110154E62ECA6A7D67505@qq.com
drivers/net/wireless/realtek/rtw88/debug.c

index fa3d73b..3da477e 100644 (file)
@@ -183,8 +183,8 @@ static int rtw_debugfs_copy_from_user(char tmp[], int size,
 
        tmp_len = (count > size - 1 ? size - 1 : count);
 
-       if (!buffer || copy_from_user(tmp, buffer, tmp_len))
-               return count;
+       if (copy_from_user(tmp, buffer, tmp_len))
+               return -EFAULT;
 
        tmp[tmp_len] = '\0';