Dan Carpenter
2020-Dec-02 06:44 UTC
[PATCH] vhost_vdpa: return -EFAULT if copy_to_user() fails
The copy_to_user() function returns the number of bytes remaining to be copied but this should return -EFAULT to the user. Fixes: 1b48dc03e575 ("vhost: vdpa: report iova range") Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com> --- drivers/vhost/vdpa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c index d6a37b66770b..ef688c8c0e0e 100644 --- a/drivers/vhost/vdpa.c +++ b/drivers/vhost/vdpa.c @@ -344,7 +344,9 @@ static long vhost_vdpa_get_iova_range(struct vhost_vdpa *v, u32 __user *argp) .last = v->range.last, }; - return copy_to_user(argp, &range, sizeof(range)); + if (copy_to_user(argp, &range, sizeof(range))) + return -EFAULT; + return 0; } static long vhost_vdpa_vring_ioctl(struct vhost_vdpa *v, unsigned int cmd, -- 2.29.2
Jason Wang
2020-Dec-02 08:13 UTC
[PATCH] vhost_vdpa: return -EFAULT if copy_to_user() fails
On 2020/12/2 ??2:44, Dan Carpenter wrote:> The copy_to_user() function returns the number of bytes remaining to be > copied but this should return -EFAULT to the user. > > Fixes: 1b48dc03e575 ("vhost: vdpa: report iova range") > Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com> > --- > drivers/vhost/vdpa.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index d6a37b66770b..ef688c8c0e0e 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -344,7 +344,9 @@ static long vhost_vdpa_get_iova_range(struct vhost_vdpa *v, u32 __user *argp) > .last = v->range.last, > }; > > - return copy_to_user(argp, &range, sizeof(range)); > + if (copy_to_user(argp, &range, sizeof(range))) > + return -EFAULT; > + return 0; > } > > static long vhost_vdpa_vring_ioctl(struct vhost_vdpa *v, unsigned int cmd,Acked-by: Jason Wang <jasowang at redhat.com> Thanks
Stefano Garzarella
2020-Dec-02 09:14 UTC
[PATCH] vhost_vdpa: return -EFAULT if copy_to_user() fails
On Wed, Dec 02, 2020 at 09:44:43AM +0300, Dan Carpenter wrote:>The copy_to_user() function returns the number of bytes remaining to be >copied but this should return -EFAULT to the user. > >Fixes: 1b48dc03e575 ("vhost: vdpa: report iova range") >Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com> >--- > drivers/vhost/vdpa.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-)Reviewed-by: Stefano Garzarella <sgarzare at redhat.com>> >diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c >index d6a37b66770b..ef688c8c0e0e 100644 >--- a/drivers/vhost/vdpa.c >+++ b/drivers/vhost/vdpa.c >@@ -344,7 +344,9 @@ static long vhost_vdpa_get_iova_range(struct vhost_vdpa *v, u32 __user *argp) > .last = v->range.last, > }; > >- return copy_to_user(argp, &range, sizeof(range)); >+ if (copy_to_user(argp, &range, sizeof(range))) >+ return -EFAULT; >+ return 0; > } > > static long vhost_vdpa_vring_ioctl(struct vhost_vdpa *v, unsigned int cmd, >-- >2.29.2 > >_______________________________________________ >Virtualization mailing list >Virtualization at lists.linux-foundation.org >https://lists.linuxfoundation.org/mailman/listinfo/virtualization >