diff --git a/kernel/src/syscall/madvise.rs b/kernel/src/syscall/madvise.rs index 84b1a092d..85d85cfcf 100644 --- a/kernel/src/syscall/madvise.rs +++ b/kernel/src/syscall/madvise.rs @@ -20,7 +20,7 @@ pub fn sys_madvise( if start % PAGE_SIZE != 0 { return_errno_with_message!(Errno::EINVAL, "the start address should be page aligned"); } - if len > usize::MAX - PAGE_SIZE + 1 { + if len > isize::MAX as usize { return_errno_with_message!(Errno::EINVAL, "len align overflow"); } if len == 0 { diff --git a/kernel/src/syscall/mprotect.rs b/kernel/src/syscall/mprotect.rs index 5543db9ac..62fd7c8c5 100644 --- a/kernel/src/syscall/mprotect.rs +++ b/kernel/src/syscall/mprotect.rs @@ -22,7 +22,7 @@ pub fn sys_mprotect(addr: Vaddr, len: usize, perms: u64, ctx: &Context) -> Resul if len == 0 { return Ok(SyscallReturn::Return(0)); } - if len > usize::MAX - PAGE_SIZE + 1 { + if len > isize::MAX as usize { return_errno_with_message!(Errno::ENOMEM, "len align overflow"); } diff --git a/kernel/src/syscall/munmap.rs b/kernel/src/syscall/munmap.rs index fea54ff65..1e4498071 100644 --- a/kernel/src/syscall/munmap.rs +++ b/kernel/src/syscall/munmap.rs @@ -14,7 +14,7 @@ pub fn sys_munmap(addr: Vaddr, len: usize, ctx: &Context) -> Result usize::MAX - PAGE_SIZE + 1 { + if len > isize::MAX as usize { return_errno_with_message!(Errno::ENOMEM, "munmap len align overflow"); }