Vad är en dinglande pekare?

En dinglande pekare är ett programmeringsfel som uppstår i objektorienterad kodning när ett pekobjekt pekar på ett annat objekt som inte längre finns. I det här fallet är en pekare inte en muspekare utan ett pekobjekt som är avsett att skicka användaren till ett annat objekt. Denna brist skapar subtila buggar som kan bli värre med tiden och utgör också ett säkerhetsproblem som skickliga hackare kan attackera. En dinglande pekare inträffar när en programmerare raderar objektet som pekas på men inte raderar själva pekaren.

I objektorienterad kodning, där kodning separeras i objekt, finns det en instans som kallas en pekare. Pekarinstansen placeras någonstans i programmet, vanligtvis i en meny, och leder användaren till ett annat objekt. Om användaren till exempel markerar en del av en meny, visas en annan meny – en rullgardinsmeny. Detta tillåter programmeraren att sätta upp flera objekt i en sektion utan att tränga ihop sektionen.

Det dinglande pekarfelet manifesterar sig när en programmerare raderar objektet som pekas på. Om programmeraren också raderar pekarinstansen blir det inga problem. Om programmeraren glömmer och behåller pekaren i kodningen, skapar detta en dinglande pekare och presenterar både kvalitets- och säkerhetsproblem.

Kvalitetsmässigt ser en dinglande pekare slarvig ut och skapar subtila buggar. Detta beror på att programmet inte vet hur det ska agera, eftersom det blir tillsagt att göra något men inte kan eftersom objektet är borta. Denna handling skapar slumpmässig kod eller försämrar kod på små, subtila sätt som är svåra att upptäcka. Dessa buggar kan vara så små att de gör att programmet rör sig lite långsammare men kan så småningom göra att programmet – och till och med datorn – inte fungerar.

De flesta program med hängande pekare kommer att fungera initialt och kan fortsätta att fungera i månader eller till och med år innan felen blir uppenbara. Även program som gör beräkningar, vilket betyder att den dinglande pekaren finns i formeln, kanske fortfarande kan göra enkla beräkningar. Detta är en av anledningarna till att det kan vara så svårt att hitta dinglande pekare.

Fram till 2007 skapade den dinglande pekaren bara säkerhetsproblem i teorin. Programvaruföretaget Watchfire® skapade sedan ett program som visade hur dinglande pekare kan utnyttjas, vilket gör säkerhetsrisken till verklighet. Hackare kan infiltrera ett program via denna bugg och kan injicera sin egen kod i det felaktiga programmet.