Hahaha
Fork бомбите бяха проблем едно време. Сега всички ОС идват така:
[hpeivged@ivan-laptop Videos]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30924
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Виждаш ли - max user proceses = 1024. Има обаче един голям проблем.
max memory size (kbytes, -m) unlimited
Много се смях веднъж. Ама много...
http://www.openwall.com/lists/oss-security/2012/12/22/6CVE-2012-5667
Long story short.
grep match-ва редове. Ако реда е твърде голям умира със съобщение че няма памет.
Някой C спец ( сигурно такъв като мене) е "оправил" това и имаше период в който реда можеше да е много дълъг...
Убих си лаптопа с простото
grep "U gonna die" /dev/zero
[ivan@ivan-laptop Videos]$ grep "U gonna die" /dev/zero
grep: паметта е изчерпана
[ivan@ivan-laptop Videos]$ ^C
# след 30 мин първи отговор от шел-а
[ivan@ivan-laptop Videos]$ uptime
11:24:39 up 2:15, 5 users,
load average: 26,32, 49,89, 26,41 Кви форк бомби кви пет леа. Вече е по лесно