Re: [RFC/PATCH] RLIMIT_ARG_MAX

Michael Kerrisk
2008-02-29T18:18:38Z

Peter Zijlstra wrote:
> On Fri, 2008-02-29 at 09:35 -0800, Linus Torvalds wrote:
>> On Fri, 29 Feb 2008, Peter Zijlstra wrote:
>>> You fail to mention that <23 will still fault the first time it tries to
>>> grow the stack when you set rlimit_stack to 128k and actually supply
>>> 128k of env+arg.
>> So? That's what rlimit_stack has always meant (and not just on Linux
>> either, afaik). That's not a bug, it's a feature. If the system has a
>> limited stack, it has a limited stack. That's what RLIMIT_STACK means.
>
> Well, I agree with that point. It just that apparently POSIX does not.
> According to Michael POSIX does not consider the arg+env array part of
> the stack proper.

AFAIK, POSIX.1 makes no requirement here. Most (all?) Unix systems have
traditionally placed argv+environ just above the stack, but that isn't
required.

My reading of POSIX.1 (and POSIX doesn't seem very explicit on this
point), is that the limits on argv+environ and on stack are decoupled,
since POSIX specifies RLIMIT_STACK and sysconf(_SC_ARG_MAX) and doesn't
specify any relationship between the two.