From 521bdc61813d25984d9de8194949ba1e83f9a5b5 Mon Sep 17 00:00:00 2001 From: Ken Sato Date: Mon, 18 Jun 2018 13:55:53 +0900 Subject: [PATCH] mremap: Fix type of size arguments (from ssize_t to size_t) Refs: #1112 Change-Id: I3987d3a20a1e7c4b60f3880e91a670bc0bdc240f --- kernel/syscall.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/kernel/syscall.c b/kernel/syscall.c index 1a640d49..c8ea5e0f 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -7701,8 +7701,8 @@ SYSCALL_DECLARE(mremap) const size_t newsize0 = ihk_mc_syscall_arg2(ctx); const int flags = ihk_mc_syscall_arg3(ctx); const uintptr_t newaddr = ihk_mc_syscall_arg4(ctx); - const ssize_t oldsize = (oldsize0 + PAGE_SIZE - 1) & PAGE_MASK; - const ssize_t newsize = (newsize0 + PAGE_SIZE - 1) & PAGE_MASK; + const size_t oldsize = (oldsize0 + PAGE_SIZE - 1) & PAGE_MASK; + const size_t newsize = (newsize0 + PAGE_SIZE - 1) & PAGE_MASK; const uintptr_t oldstart = oldaddr; const uintptr_t oldend = oldstart + oldsize; struct thread *thread = cpu_local_var(current); @@ -7723,8 +7723,7 @@ SYSCALL_DECLARE(mremap) /* check arguments */ if ((oldaddr & ~PAGE_MASK) - || (oldsize < 0) - || (newsize <= 0) + || (newsize == 0) || (flags & ~(MREMAP_MAYMOVE | MREMAP_FIXED)) || ((flags & MREMAP_FIXED) && !(flags & MREMAP_MAYMOVE))