From: Christoph Hellwig
> Sent: 11 January 2021 17:19
> 
> sizeof needs to be called on the compat pointer, not the native one.
> 
> Fixes: 89cd35c58bc2 ("iov_iter: transparently handle compat iovecs in 
> import_iovec")
> Reported-by: David Laight <[email protected]>
> Signed-off-by: Christoph Hellwig <[email protected]>
> ---
>  lib/iov_iter.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/iov_iter.c b/lib/iov_iter.c
> index 1635111c5bd2af..586215aa0f15ce 100644
> --- a/lib/iov_iter.c
> +++ b/lib/iov_iter.c
> @@ -1658,7 +1658,7 @@ static int copy_compat_iovec_from_user(struct iovec 
> *iov,
>               (const struct compat_iovec __user *)uvec;
>       int ret = -EFAULT, i;
> 
> -     if (!user_access_begin(uvec, nr_segs * sizeof(*uvec)))
> +     if (!user_access_begin(uvec, nr_segs * sizeof(*uiov)))

The first 'uvec' probably ought to be changed as well.
Even though both variables have the same value.

        David

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

Reply via email to