process_vm_read_writev(): fix base address check for EFAULT
This commit is contained in:
@ -7812,6 +7812,16 @@ arg_out:
|
|||||||
|
|
||||||
ihk_mc_spinlock_lock_noirq(<hread->vm->memory_range_lock);
|
ihk_mc_spinlock_lock_noirq(<hread->vm->memory_range_lock);
|
||||||
|
|
||||||
|
/* Is base valid? */
|
||||||
|
range = lookup_process_memory_range(lthread->vm,
|
||||||
|
(uintptr_t)local_iov[li].iov_base,
|
||||||
|
(uintptr_t)(local_iov[li].iov_base + 1));
|
||||||
|
|
||||||
|
if (!range) {
|
||||||
|
ret = -EFAULT;
|
||||||
|
goto pli_out;
|
||||||
|
}
|
||||||
|
|
||||||
/* Is range valid? */
|
/* Is range valid? */
|
||||||
range = lookup_process_memory_range(lthread->vm,
|
range = lookup_process_memory_range(lthread->vm,
|
||||||
(uintptr_t)local_iov[li].iov_base,
|
(uintptr_t)local_iov[li].iov_base,
|
||||||
@ -7845,6 +7855,16 @@ pli_out:
|
|||||||
|
|
||||||
ihk_mc_spinlock_lock_noirq(&rvm->memory_range_lock);
|
ihk_mc_spinlock_lock_noirq(&rvm->memory_range_lock);
|
||||||
|
|
||||||
|
/* Is base valid? */
|
||||||
|
range = lookup_process_memory_range(rvm,
|
||||||
|
(uintptr_t)remote_iov[li].iov_base,
|
||||||
|
(uintptr_t)(remote_iov[li].iov_base + 1));
|
||||||
|
|
||||||
|
if (range == NULL) {
|
||||||
|
ret = -EFAULT;
|
||||||
|
goto pri_out;
|
||||||
|
}
|
||||||
|
|
||||||
/* Is range valid? */
|
/* Is range valid? */
|
||||||
range = lookup_process_memory_range(rvm,
|
range = lookup_process_memory_range(rvm,
|
||||||
(uintptr_t)remote_iov[li].iov_base,
|
(uintptr_t)remote_iov[li].iov_base,
|
||||||
|
|||||||
Reference in New Issue
Block a user