Što je prelijevanje međuspremnika?

Prelijevanje međuspremnika događa se kada program pokušava pisati u međuspremnik i izlazi izvan njegovih granica, što rezultira upisom informacija programa u memoriju koja potencijalno pripada drugom programu. To narušava integritet memorije unutar operacijskog sustava, što rezultira ozbiljnom pogreškom i potencijalnim padom programa koji se izvršava. Najveća opasnost od prelijevanja međuspremnika dolazi iz dva glavna elementa. Prvo, informacije zapisane izvan međuspremnika naizgled su “izgubljene”, budući da memorijska karta računala – njegov popis memorijskih lokacija – to ne može objasniti. Drugo, prekoračenje međuspremnika može slučajno prebrisati informacije pohranjene u memoriji za drugi program, učinkovito ometajući i izvođenje drugog programa.

“Međuspremnik” je područje memorije koje se koristi kao privremeno mjesto za pohranu dok računalo prenosi informacije s jedne točke na drugu. Najčešća upotreba međuspremnika je obično u reprodukciji videa ili zvuka, gdje računalo postavlja dodatnih X sekundi snimke ili zvuka u memoriju, osiguravajući da reprodukcija neće biti prekinuta ako se nešto privremeno pokvari na sustavu. Međuspremnik postoji samo unutar određene, unaprijed određene lokacije unutar memorije računala, slično kao što država postoji samo unutar graničnih crta nacrtanih na karti. Izlazak izvan ovih virtualnih “linija” rezultira problemima ne samo za program koji se izvodi, već i za druge programe u sustavu.

U suštini, program je izašao izvan dodijeljene jurisdikcije i upao u prostor drugog radnog programa. Jednom kada se to dogodi, informacije napisane izvan međuspremnika zapravo otpadaju s mape računala; drugim riječima, sustav više nema načina da ga dohvati. Budući da računalo “zna” samo tražiti informacije u međuspremniku unutar određenog prostora međuspremnika dodijeljenog u memoriji, nema načina da shvati kamo su otišle prepunjene informacije.

Osim toga, prekoračenje međuspremnika može poremetiti druge programe koji se izvode na računalu. Zamislite da je memorijski prostor za pohranu s obje strane međuspremnika već dodijeljen drugim pokrenutim programima. Nakon što informacija u međuspremniku prođe kroz svoje dizajnirano područje, on će prebrisati i pokvariti sve informacije koje su već pohranjene u tim dijelovima memorije. Stoga je prelijevanje međuspremnika problem koji može potkopati učinkovitost susjednog programa, kao i narušiti njegov vlastiti rad.