svn commit: r236848 - head/sys/vm
Konstantin Belousov
kib at FreeBSD.org
Sun Jun 10 11:31:51 UTC 2012
Author: kib
Date: Sun Jun 10 11:31:50 2012
New Revision: 236848
URL: http://svn.freebsd.org/changeset/base/236848
Log:
Use the previous stack entry protection and max protection to correctly
propagate the stack execution permissions when stack is grown down.
First, curproc->p_sysent->sv_stackprot specifies maximum allowed stack
protection for current ABI, so the new stack entry was typically marked
executable always. Second, for non-main stack MAP_STACK mapping,
the PROT_ flags should be used which were specified at the mmap(2) call
time, and not sv_stackprot.
MFC after: 1 week
Modified:
head/sys/vm/vm_map.c
Modified: head/sys/vm/vm_map.c
==============================================================================
--- head/sys/vm/vm_map.c Sun Jun 10 11:17:14 2012 (r236847)
+++ head/sys/vm/vm_map.c Sun Jun 10 11:31:50 2012 (r236848)
@@ -3528,7 +3528,7 @@ Retry:
}
rv = vm_map_insert(map, NULL, 0, addr, stack_entry->start,
- p->p_sysent->sv_stackprot, VM_PROT_ALL, 0);
+ next_entry->protection, next_entry->max_protection, 0);
/* Adjust the available stack space by the amount we grew. */
if (rv == KERN_SUCCESS) {
More information about the svn-src-all
mailing list