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/