Een buffer is een stuk geheugen waarin data wordt opgeslagen. Bij een buffer overflow wordt meer data geschreven dan de buffer kan bevatten → overschrijft aangrenzende geheugenlocaties.
char c[4] = "c";
strcpy(c, "12345678"); // Te veel data → buffer overflow
b en a (afhankelijk van stack layout)Gebruik veilige functies zoals strncpy met limiet:
strncpy(c, "12345678", sizeof(c) - 1);
c[sizeof(c)-1] = '\\\\0';
snprintf, fgets, memcpy_s i.p.v. strcpy, gets, sprintfWanneer een getal buiten het bereik van zijn datatype valt, ontstaat er een integer overflow. Dit leidt tot onverwachte waarden (bijv. negatief getal).