Heap
From Hackepedia
Heap Overflows
Due to bad programming some programs allow writing past the end of a buffer that has been allocated on the heap. This can result in the overwriting of other buffers and/or text. Another explanation is here.
OpenBSD's removal of the Heap
OpenBSD has done away with a heap growing upwards in version 3.8. Instead they mmap a region at a
random location while making sure that other mapped regions are never adjacent creating a gap of uninitialized memory. This gap they call "guard pages" and they serve the function that when a buffer is overwritten that it will write into the guard page and cause a SIGSEGV
signal saving the program from a successful heap attack.
Image:OpenBSD-heap.png
German - von Hackepedia
Wegen schlechter Programmierung tun manche Programme es erlauben das man
einen Puffer Überläuft im heap (haufen). Damit können andere Puffer
überschrieben werden oder/und text.
OpenBSD's wegtun mit dem Heap
OpenBSD hat den heap der hochwächst seit version 3.8 entfernt. Anstatt
machen sie einen mmap auf einer zufälligen Adresse und machen sicher das
andere mmap'ings nicht genau neben dieser sind, was wiederum eine lücke
mit uninitialisiertem speicher zwischen diesen mmap'ings macht. Diese
lücke wird auch "guard pages" genannt und sie dienen der funktion das wenn
ein Puffer überschrieben wird das sie in das Guard Page einschreiben und
damit ein SIGSEGV signal herauslocken, was dann das Program von einem
erfolgreichem Heap Attack schützt.