A mapping with this flag can be expanded downwards dynamically (up to the PROCESS_STACK_SIZE limit) by "touching" addresses lower than the base of the mapping.
This feature requires that a guard gap is kept between a MAP_GROWSDOWN mapping and any adjacent mappings. The second commit implements enforcing of the guard gap next to the process stack, which is a security feature because it greatly
decreases the likelihood of a stack overflow not being detected and prevents the exploitation of many application vulnerabilities
that involve overflowing the stack.
The first commit fixes a bug in the paging code that was causing sporadic failures when running the mmap runtime test.
A mapping with this flag can be expanded downwards dynamically (up to the PROCESS_STACK_SIZE limit) by "touching" addresses lower than the base of the mapping. This feature requires that a guard gap is kept between a MAP_GROWSDOWN mapping and any adjacent mappings. The second commit implements enforcing of the guard gap next to the process stack, which is a security feature because it greatly decreases the likelihood of a stack overflow not being detected and prevents the exploitation of many application vulnerabilities that involve overflowing the stack. The first commit fixes a bug in the paging code that was causing sporadic failures when running the mmap runtime test.