Ero sivun ”Puskurin ylivuotovirhe” versioiden välillä

[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
Jpk (keskustelu | muokkaukset)
p w
Hartz (keskustelu | muokkaukset)
p Linkin suoristus: C-ohjelmointikieli
Rivi 3:
[[Puskuri]]n ylivuoto tapahtuu silloin, kun ohjelma kasvattaa tai vähentää muistialueeseen osoittavaa [[indeksi]]ä niin suureksi tai pieneksi, että indeksi ei enää osoitakaan puskurille varatulle muistialueelle, vaan tallennettavat tietoalkiot ikään kuin vuotavat sen yli edellä tai jäljessä oleviin, muuhun käyttöön varattuihin [[muistipaikka|muistipaikkoihin]].
 
Puskurin ylivuotovirhe aiheuttaa tietoturvaongelmia useimmin ohjelmissa, jotka on toteutettu suhteellisen matalan tason ohjelmointikielillä. Näissä ei useinkaan ole huomioitu muistialueiden suojaustarvetta ohjelman omilta, mutta asiaankuulumattomilta muokkauksilta. Näitä kieliä ovat mm. [[C- (ohjelmointikieli)|C]] ja [[C++]]. Useat kielet, kuten [[Java]] ja [[Lisp]] huolehtivat sisäisesti muistinhallinnasta ja ovat immuuneja puskurin ylivuotovirheille. Joskus kuitenkin nämä immuunitkin ohjelmointikielet saattavat altistua tälle ongelmalle, koska on hyvin yleistä, että käytetään pientä C:llä tehtyjä rutiinia.
 
==Katso myös==
 
* [[ohjelmistosodankäynti]]
 
==Englanninkielisiä artikkeleita puskurin ylivuototilanteen välttämiseksi==