mincore: check [start..start+len) is in user region

This commit is contained in:
NAKAMURA Gou
2016-03-14 18:55:46 +09:00
parent e939cf6862
commit 604f846cd2

View File

@ -3231,6 +3231,13 @@ SYSCALL_DECLARE(mincore)
dkprintf("mincore(0x%lx,0x%lx,%p): EINVAL\n", start, len, vec);
return -EINVAL;
}
if ((start < vm->region.user_start)
|| (vm->region.user_end <= start)
|| ((vm->region.user_end - start) < len))
{
dkprintf("mincore(0x%lx,0x%lx,%p): EINVAL\n", start, len, vec);
return -ENOMEM;
}
range = NULL;
up = vec;