summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2017-07-10 07:12:59 +0000
committerkib <kib@FreeBSD.org>2017-07-10 07:12:59 +0000
commitf65f87b2896bf5d593828974726c22a48ecac021 (patch)
tree559df62b572d0aed68da0ecdfed91c59df267893
parentf55bb1740b734ed9db48ca453873463a6c9e1733 (diff)
downloadFreeBSD-src-f65f87b2896bf5d593828974726c22a48ecac021.zip
FreeBSD-src-f65f87b2896bf5d593828974726c22a48ecac021.tar.gz
MFC r320619 MFS r320863:
Resolve confusion between different error code spaces. Approved by: re (delphij)
-rw-r--r--sys/kern/kern_exec.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index 1a41aac..43dd481 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -1055,9 +1055,9 @@ exec_unmap_first_page(imgp)
}
/*
- * Destroy old address space, and allocate a new stack
- * The new stack is only SGROWSIZ large because it is grown
- * automatically in trap.c.
+ * Destroy old address space, and allocate a new stack.
+ * The new stack is only sgrowsiz large because it is grown
+ * automatically on a page fault.
*/
int
exec_new_vmspace(imgp, sv)
@@ -1111,9 +1111,9 @@ exec_new_vmspace(imgp, sv)
VM_PROT_READ | VM_PROT_EXECUTE,
VM_PROT_READ | VM_PROT_EXECUTE,
MAP_INHERIT_SHARE | MAP_ACC_NO_CHARGE);
- if (error) {
+ if (error != KERN_SUCCESS) {
vm_object_deallocate(obj);
- return (error);
+ return (vm_mmap_to_errno(error));
}
}
@@ -1137,10 +1137,9 @@ exec_new_vmspace(imgp, sv)
stack_addr = sv->sv_usrstack - ssiz;
error = vm_map_stack(map, stack_addr, (vm_size_t)ssiz,
obj != NULL && imgp->stack_prot != 0 ? imgp->stack_prot :
- sv->sv_stackprot,
- VM_PROT_ALL, MAP_STACK_GROWS_DOWN);
- if (error)
- return (error);
+ sv->sv_stackprot, VM_PROT_ALL, MAP_STACK_GROWS_DOWN);
+ if (error != KERN_SUCCESS)
+ return (vm_mmap_to_errno(error));
/*
* vm_ssize and vm_maxsaddr are somewhat antiquated concepts, but they
OpenPOWER on IntegriCloud