On Fri, Sep 26, 2025 at 4:37 PM Michael S. Tsirkin <[email protected]> wrote:
>
> On Fri, Sep 26, 2025 at 12:14:26PM +0200, Eugenio Pérez wrote:
> > PATCH v5:
> > * Properly return errno if copy_to_user returns >0 in VDUSE_IOTLB_GET_FD
> >   ioctl (Jason).
>
> ???
>
> I think copy_to_user returns an unsigned value: the number of bytes copied.
>
>
> static __always_inline unsigned long __must_check
> copy_from_user(void *to, const void __user *from, unsigned long n)
> {
>         if (!check_copy_size(to, n, false))
>                 return n;
> #ifdef INLINE_COPY_FROM_USER
>         return _inline_copy_from_user(to, from, n);
> #else
>         return _copy_from_user(to, from, n);
> #endif
> }
>
>
> so, how does the patch work then?
>

copy_from_user returns the number of bytes that could not be copied.
For example when the object size in the kernel is less than n bytes
long, check_copy_size returns false and copy_from_user returns n, the
amount of size requested to copy.


Reply via email to