From f60ff172696fade9a02e787ea0df0c65375fb849 Mon Sep 17 00:00:00 2001 From: kib Date: Sat, 25 Nov 2017 14:51:40 +0000 Subject: [PATCH] MFC r326098: Return different error code for the guard page layout violation. PR: 223732 git-svn-id: svn://svn.freebsd.org/base/stable/10@326189 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/vm/vm_map.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 238317ac3..c254123c7 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -3555,12 +3555,13 @@ vm_map_stack_locked(vm_map_t map, vm_offset_t addrbos, vm_size_t max_ssize, KASSERT(orient != (MAP_STACK_GROWS_DOWN | MAP_STACK_GROWS_UP), ("bi-dir stack")); - sgp = (vm_size_t)stack_guard_page * PAGE_SIZE; if (addrbos < vm_map_min(map) || - addrbos > vm_map_max(map) || - addrbos + max_ssize < addrbos || - sgp >= max_ssize) - return (KERN_NO_SPACE); + addrbos + max_ssize > vm_map_max(map) || + addrbos + max_ssize <= addrbos) + return (KERN_INVALID_ADDRESS); + sgp = (vm_size_t)stack_guard_page * PAGE_SIZE; + if (sgp >= max_ssize) + return (KERN_INVALID_ARGUMENT); init_ssize = growsize; if (max_ssize < init_ssize + sgp) -- 2.45.0