shell kill machine
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Úterý Květen 16 14:52:03 CEST 2000
On Tue, 16 May 2000, Jan ' Kozo ' Vajda wrote:
> mohol by mi niekto, kto je zbehly v shell programingu vysvetlit, preco mi
> nasledujuca postupnost znakov
>
> :(){ :|:&};:
>
> napisana z cmd-line bash zatuhne masinu ?
Budu predpokladat, ze to shell nejak rozparsuje (coz muze byt zavisle
(ne)pritomnosti mezer na ruznych mistech apod.) Pak je to ekvivalentni
kodu...
abc()
{
abc | abc &
}
abc
Tedy nadefinujeme shellovou funkci, ktera pracuje tak, ze sama sebe
rekurzivne vyvola dvakrat, a to navic na pozadi, tj. v jinem procesu (lepe
receno ve dvou novych procesech), a pak tu funkci spustime. Takze takova
forkbomba. Prepsano do C je to neco takovehoto (zkousejte pouze na
vlastni nebezpeci):
#include <unistd.h>
int main()
{
for (;;) {
if (!fork()) continue;
if (!fork()) continue;
return 0;
}
}
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux