From c72467e151ac258ba1b8ed24ad8abea7151ffebf Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Tue, 18 May 2021 00:56:56 -0700 Subject: Fix range check --- pk/mmap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'pk') diff --git a/pk/mmap.c b/pk/mmap.c index 3bcfbbe..3d4326c 100644 --- a/pk/mmap.c +++ b/pk/mmap.c @@ -277,9 +277,10 @@ static inline pte_t prot_to_type(int prot, int user) int __valid_user_range(uintptr_t vaddr, size_t len) { - if (vaddr + len < vaddr) + uintptr_t last_vaddr = vaddr + len - 1; + if (last_vaddr < vaddr) return 0; - return vaddr + len <= current.mmap_max; + return last_vaddr < current.mmap_max; } static void flush_tlb_entry(uintptr_t vaddr) -- cgit v1.1