Mikä on roikkuva osoitin?

Riippuva osoitin on ohjelmointivirhe, joka ilmenee olio-ohjelmoinnissa, kun osoitinobjekti osoittaa toiseen objektiin, jota ei enää ole. Tässä tapauksessa osoitin ei ole hiiren osoitin vaan osoitinobjekti, jonka on tarkoitus lähettää käyttäjä toiseen kohteeseen. Tämä virhe luo hienovaraisia ​​vikoja, jotka voivat pahentua ajan myötä, ja se on myös turvallisuusongelma, johon taitavat hakkerit voivat hyökätä. Ripustava osoitin tapahtuu, kun ohjelmoija poistaa kohteen, johon osoitetaan, mutta ei itse osoitinta.

Objektipohjaisessa koodauksessa, jossa koodaus on erotettu objekteiksi, on esiintymä, jota kutsutaan osoittimeksi. Osoittimen esiintymä sijoitetaan jonnekin ohjelmaan, tyypillisesti valikkoon, ja se johtaa käyttäjän toiseen kohteeseen. Jos käyttäjä esimerkiksi korostaa valikon osion, näkyviin tulee toinen valikko-avattava valikko. Tämän avulla ohjelmoija voi asettaa useita kohteita yhteen osaan ilman, että osio tiivistyy.

Ripustava osoitinvirhe ilmenee, kun ohjelmoija poistaa osoittavan kohteen. Jos ohjelmoija poistaa myös osoittimen ilmentymän, ongelmia ei ole. Jos ohjelmoija unohtaa ja pitää osoittimen koodauksessa, tämä luo roikkuvan osoittimen ja esittää sekä laatu- että turvallisuusongelmia.

Laadun suhteen roikkuva osoitin näyttää huolimattomalta ja luo hienovaraisia ​​vikoja. Tämä johtuu siitä, että ohjelma ei tiedä miten toimia, koska sitä käsketään tekemään jotain, mutta ei voi, koska kohde on poissa. Tämä toiminto luo satunnaista koodia tai huonontaa koodia pienillä, hienovaraisilla tavoilla, joita on vaikea havaita. Nämä virheet voivat olla niin pieniä, että ne saavat ohjelman liikkumaan hieman hitaammin, mutta voivat lopulta tehdä ohjelman-ja jopa tietokoneen-toimimattomaksi.

Useimmat roikkuvat osoittimet sisältävät ohjelmat toimivat aluksi ja voivat jatkaa työskentelyä kuukausia tai jopa vuosia ennen kuin virheet tulevat ilmeisiksi. Jopa ohjelmat, jotka suorittavat laskutoimituksia eli roikkuvat osoittimet ovat kaavassa, voivat silti pystyä tekemään yksinkertaisia ​​laskelmia. Tämä on yksi syy siihen, miksi roikkuvien osoittimien löytäminen voi olla niin vaikeaa.

Vuoteen 2007 asti roikkuva osoitin loi vain teoriassa turvallisuusongelmia. Watchfire® -ohjelmistoyritys teki sitten ohjelman, joka osoitti, kuinka roikkuvia osoittimia voidaan hyödyntää, mikä tekee tietoturvariskistä todellisuuden. Hakkerit voivat tunkeutua ohjelmaan tämän virheen kautta ja voivat pistää oman koodinsa vialliseen ohjelmaan.