• Linus Torvalds's avatar
    mm: keep a guard page below a grow-down stack segment · 320b2b8d
    Linus Torvalds authored
    This is a rather minimally invasive patch to solve the problem of the
    user stack growing into a memory mapped area below it.  Whenever we fill
    the first page of the stack segment, expand the segment down by one
    page.
    
    Now, admittedly some odd application might _want_ the stack to grow down
    into the preceding memory mapping, and so we may at some point need to
    make this a process tunable (some people might also want to have more
    than a single page of guarding), but let's try the minimal approach
    first.
    
    Tested with trivial application that maps a single page just below the
    stack, and then starts recursing.  Without this, we will get a SIGSEGV
    _after_ the stack has smashed the mapping.  With this patch, we'll get a
    nice SIGBUS just as the stack touches the page just above the mapping.
    Requested-by: default avatarKeith Packard <keithp@keithp.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    320b2b8d
memory.c 95.5 KB