Index: head/sys/vm/vm_map.c =================================================================== --- head/sys/vm/vm_map.c +++ head/sys/vm/vm_map.c @@ -3612,12 +3612,13 @@ 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)