SuSE Linux: Verze 6.4
Kernel: Verze 2.2.14.SuSE
SuSE Linux: verze 6.4
Jádro: verze 2.2.14.SuSE
Ve VM existuje pro každý proces tzv. Heap a Stack. Tyto dvě oblasti se mohou nacházet velice blízko sebe.
| GAP | -------------------------- | heap | | stack | -------------------------- Y XKdyž budeme vycházet z výše uvedé situace, kdy je register ESP na pozici X a potom jezavolána funkce, která rezervuje množství GAP*PAGE_SIZE paměti a ještě si rezervuje pár dalších KB tak, že registr ESP ukazuje na pozici Y, což vede ke zničení Heap paměti.
Chyby, které takto vznikají, je možné odstranit pouze s maximálními obtížemi nebo je to úplně nemožné. Z tohoto důvodu zabudovala SuSE rozšíření do jádra, které zajišťuje dostatek místa mezi Heap a Stack, a tím také nemožnost Segmentation Fault.
Implicitně je tato hodnota nastavena na 128, jejichž jednotkou je tzv. Page (4096 Bytů), takže hodnota 128 znamená velikost 512 kB.
Pro J2SEE od Sunu je tato hodnota příliš vysoká.
Zaměstnanci spol. Sun, kteří spolupracovali na projektu Java Linux, kteří reagovali vstřícně na tuto novou schopnost, navrhli nastavení této hodnoty ze 128 na 10.
Úplná deaktivace je možná přiřazením hodnoty 0.
echo 10 > /proc/sys/vm/heap-stack-gapTato hodnota bude při každém startu systému znova přepsána. Pokud chcete tuto hodnotu nastavit trvale, je třeba napsat jako uživatel root následující příkaz:
echo "echo 10 > /proc/sys/vm/heap-stack-gap" >> /sbin/init.d/boot.local