On Thursday 09 December 2010 Pierre Gaston wrote: > On Wed, Dec 8, 2010 at 11:15 AM, Diggory Hardy <diggory.ha...@unibas.ch> > wrote: > > Hello, > > > > With a simple script such as that below, bash can enter an infinite loop of > > eating memory until the system is rendered unusable: > > > > #!/bin/bash > > PATH=~ > > infinitely-recurse > > > > Save this as infinitely-recurse in your home directory and run - and make > > sure you kill it pretty quick. OK, so an obvious bug when put like this, > > though it bit me recently (mistakenly using PATH as an ordinary variable > > and having a script with the same name as a system program). Would it not > > be simple to add some kind of protection against this — say don't let a > > script call itself more than 100 times? > > > > Thanks, > > Diggory > > > Well, I'm not a big fan of the technique, but out there I see a lot of > wrapper scripts calling themselves to automatically restart an > application. > Uh. Then over time it is legitimate to have a script recursively call itself a few thousand times with each instance still in memory?
The potential to grind the system to a complete halt is pretty serious though. Perhaps the ideal solution would be to have the kernel intervene before it starts thrashing memory, but that doesn't seem to happen.