|
@@ -215,6 +215,9 @@ static long ioctl_memcpy(struct fsl_hv_ioctl_memcpy __user *p)
|
|
|
* hypervisor.
|
|
* hypervisor.
|
|
|
*/
|
|
*/
|
|
|
lb_offset = param.local_vaddr & (PAGE_SIZE - 1);
|
|
lb_offset = param.local_vaddr & (PAGE_SIZE - 1);
|
|
|
|
|
+ if (param.count == 0 ||
|
|
|
|
|
+ param.count > U64_MAX - lb_offset - PAGE_SIZE + 1)
|
|
|
|
|
+ return -EINVAL;
|
|
|
num_pages = (param.count + lb_offset + PAGE_SIZE - 1) >> PAGE_SHIFT;
|
|
num_pages = (param.count + lb_offset + PAGE_SIZE - 1) >> PAGE_SHIFT;
|
|
|
|
|
|
|
|
/* Allocate the buffers we need */
|
|
/* Allocate the buffers we need */
|