svn commit: r321173 - head/sys/vm
Konstantin Belousov
kib at FreeBSD.org
Tue Jul 18 20:26:42 UTC 2017
Author: kib
Date: Tue Jul 18 20:26:41 2017
New Revision: 321173
URL: https://svnweb.freebsd.org/changeset/base/321173
Log:
Convert assertion that only vmspace owner grows the stack, into a
check blocking grow from other processes accesses.
Debugger may access stack grow area with ptrace(2). In this case,
real state of the process is to not have the stack grown, which
provides more accurate inspection. Technical reason to avoid the grow
is to avoid applying wrong process (debugger) stack limit.
This change also has a consequence of making aio workers accesses past
the bottom of stacks into EFAULT, arguably the situation is a
programmers mistake.
Reported by: jhb
Discussed with: alc, jhb
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Modified:
head/sys/vm/vm_map.c
Modified: head/sys/vm/vm_map.c
==============================================================================
--- head/sys/vm/vm_map.c Tue Jul 18 19:50:02 2017 (r321172)
+++ head/sys/vm/vm_map.c Tue Jul 18 20:26:41 2017 (r321173)
@@ -3698,7 +3698,8 @@ vm_map_growstack(vm_map_t map, vm_offset_t addr, vm_ma
p = curproc;
vm = p->p_vmspace;
- MPASS(map == &p->p_vmspace->vm_map);
+ if (map != &p->p_vmspace->vm_map)
+ return (KERN_FAILURE);
MPASS(!map->system_map);
guard = stack_guard_page * PAGE_SIZE;
More information about the svn-src-all
mailing list