PL/I-based Multics had few if any buffer overflows.[1]<p>C-based Unix/Linux and other systems continue to have many.<p>Segmented memory and a stack that grew up rather than down also helped.<p>[1] <a href="https://www.acsac.org/2002/papers/classic-multics.pdf" rel="nofollow">https://www.acsac.org/2002/papers/classic-multics.pdf</a>