From 604f846cd279f198cf0a9023c2685f48769f92f3 Mon Sep 17 00:00:00 2001 From: NAKAMURA Gou Date: Mon, 14 Mar 2016 18:55:46 +0900 Subject: [PATCH] mincore: check [start..start+len) is in user region --- kernel/syscall.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/syscall.c b/kernel/syscall.c index 23013f16..ae296495 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -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;