Commit 09699e56 authored by Dan Carpenter's avatar Dan Carpenter Committed by Alex Williamson
Browse files

vfio/fsl-mc: return -EFAULT if copy_to_user() fails



The copy_to_user() function returns the number of bytes remaining to be
copied, but this code should return -EFAULT.

Fixes: df747bcd ("vfio/fsl-mc: Implement VFIO_DEVICE_GET_REGION_INFO ioctl call")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Acked-by: default avatarDiana Craciun <diana.craciun@oss.nxp.com>
Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
parent 572f64c7
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -248,7 +248,9 @@ static long vfio_fsl_mc_ioctl(void *device_data, unsigned int cmd,
		info.size = vdev->regions[info.index].size;
		info.flags = vdev->regions[info.index].flags;

		return copy_to_user((void __user *)arg, &info, minsz);
		if (copy_to_user((void __user *)arg, &info, minsz))
			return -EFAULT;
		return 0;
	}
	case VFIO_DEVICE_GET_IRQ_INFO:
	{
@@ -267,7 +269,9 @@ static long vfio_fsl_mc_ioctl(void *device_data, unsigned int cmd,
		info.flags = VFIO_IRQ_INFO_EVENTFD;
		info.count = 1;

		return copy_to_user((void __user *)arg, &info, minsz);
		if (copy_to_user((void __user *)arg, &info, minsz))
			return -EFAULT;
		return 0;
	}
	case VFIO_DEVICE_SET_IRQS:
	{