RE: Using memcpy instead of copy_to_user. xprtrdma code.

From: David Laight
Date: Tue Jan 25 2022 - 17:21:58 EST


From: Aleksey Senin <aleksey-linux-kernel@xxxxxxxxxx>
> Sent: 25 January 2022 18:04
>
> This specific patch - - implements using memcpy instead of
> copy_to_user. Why is it considered to be safe in this specific case?
> All readings about how to copy data are mentioning to use
> copy_to_user/copy_from_user. Why use direct copy here? What prevents
> the kernel from failure if the page is not present or doesn't have
> required access rights?
>
> @@ -103,8 +102,8 @@ static int read_reset_stat(struct ctl_table
> *table, int write,
> len -= *ppos;
> if (len > *lenp)
> len = *lenp;
> - if (len && copy_to_user(buffer, str_buf, len))
> - return -EFAULT;
> + if (len)
> + memcpy(buffer, str_buf, len);
>
> Reference to the specific patch in the services of commits:
> https://lkml.org/lkml/2020/4/17/60

Read the commit message.

>
> Commit itself:
> 32927393dc1ccd60fb2bdc05b9e8e88753761469

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)