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