On 9/11/15 10:10 AM, Konstantin Khlebnikov wrote:
> On Fri, Sep 11, 2015 at 3:52 PM, Chet Ramey <chet.ra...@case.edu> wrote:
>> On 9/11/15 2:19 AM, Konstantin Khlebnikov wrote:
>>> $ ./bash -c ":(){ : $@$@;};: :"
>>> Segmentation fault
>>
>> This is not a memory allocation problem.  You have defined an infinitely
>> recursive function that, when executed, eventually exceeds your stack size
>> resource limit.  When that happens, the kernel sends a SIGSEGV.
> 
> Yep. But this not happens if command runs in interactive mode.
> Bash uses default stack (with MAP_GROWSDOWN) in interactive mode
> and fixed size stack for "-c" ?

Bash doesn't do anything different.  It may be that your system sets
different resource limits for interactive shells and non-interactive ones.
Either way, it will eventually fail.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to