svn commit: r320344 - head/sys/vm
Konstantin Belousov
kib at FreeBSD.org
Sun Jun 25 23:16:38 UTC 2017
Author: kib
Date: Sun Jun 25 23:16:37 2017
New Revision: 320344
URL: https://svnweb.freebsd.org/changeset/base/320344
Log:
For now, allow mprotect(2) over the guards to succeed regardless of
the requested protection.
The syscall returns success without changing the protection of the
guard. This is consistent with the current mprotect(2) behaviour on
the unmapped ranges. More important, the calls performed by libc and
libthr to allow execution of stacks, if requested by the loaded ELF
objects, do the expected change instead of failing on the grow space
guard.
Reviewed by: alc, markj
Sponsored by: The FreeBSD Foundation
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 25 22:39:28 2017 (r320343)
+++ head/sys/vm/vm_map.c Sun Jun 25 23:16:37 2017 (r320344)
@@ -2003,6 +2003,8 @@ vm_map_protect(vm_map_t map, vm_offset_t start, vm_off
*/
for (current = entry; current != &map->header && current->start < end;
current = current->next) {
+ if ((current->eflags & MAP_ENTRY_GUARD) != 0)
+ continue;
if (current->eflags & MAP_ENTRY_IS_SUB_MAP) {
vm_map_unlock(map);
return (KERN_INVALID_ARGUMENT);
More information about the svn-src-all
mailing list