• L
    Allow ARG_MAX execve string space even with a small stack limit · a64e715f
    Linus Torvalds 提交于
    The new code that removed the limitation on the execve string size
    (which was historically 32 pages) replaced it with a much softer limit
    based on RLIMIT_STACK which is usually much larger than the traditional
    limit.  See commit b6a2fea3 ("mm:
    variable length argument support") for details.
    
    However, if you have a small stack limit (perhaps because you need lots
    of stacks in a threaded environment), the new heuristic of allowing up
    to 1/4th of RLIMIT_STACK to be used for argument and environment strings
    could actually be smaller than the old limit.
    
    So just say that it's ok to have up to ARG_MAX strings regardless of the
    value of RLIMIT_STACK, and check the rlimit only when going over that
    traditional limit.
    
    (Of course, if you actually have a *really* small stack limit, the whole
    stack itself will be limited before you hit ARG_MAX, but that has always
    been true and is clearly the right behaviour anyway).
    Acked-by: NCarlos O'Donell <carlos@codesourcery.com>
    Cc: Michael Kerrisk <michael.kerrisk@googlemail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Ollie Wild <aaw@google.com>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    a64e715f
exec.c 40.8 KB