Test vma->vm_ops is our operations to make sure we created it.
We don't want to stomp on other random vmas.
[ Impact: bugfix; prevent ioctl from affecting other mappings ]
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
return 0;
}
+static struct vm_operations_struct privcmd_vm_ops;
+
static long privcmd_ioctl_mmap_batch(void __user *udata)
{
int ret;
vma = find_vma(mm, m.addr);
ret = -EINVAL;
if (!vma ||
+ vma->vm_ops != &privcmd_vm_ops ||
(m.addr != vma->vm_start) ||
((m.addr + (nr_pages << PAGE_SHIFT)) != vma->vm_end) ||
!privcmd_enforce_singleshot_mapping(vma)) {