O que é um ponteiro oscilante?
Um ponteiro pendente é uma falha de programação que ocorre na codificação orientada a objetos quando um objeto ponteiro aponta para outro objeto que não existe mais. Nesse caso, um ponteiro não é um ponteiro de mouse, mas um objeto de ponteiro destinado a enviar o usuário para outro objeto. Essa falha cria erros sutis que podem piorar com o tempo e também apresenta um problema de segurança que hackers qualificados podem atacar. Um ponteiro danificado acontece quando um programador apaga o objeto que está sendo apontado, mas não apaga o ponteiro em si.
Na codificação orientada a objetos, na qual a codificação é separada em objetos, há uma instância chamada ponteiro. A instância do ponteiro é colocada em algum lugar do programa, geralmente em um menu, e leva o usuário a outro objeto. Por exemplo, se o usuário destacar uma seção de um menu, outro menu - uma lista suspensa - será exibido. Isso permite que o programador configure vários objetos em uma seção sem sobrecarregar a seção.
O erro do ponteiro oscilante se manifesta quando um programador apaga o objeto que está sendo apontado. Se o programador também apagar a instância do ponteiro, não haverá problema. Se o programador esquecer e manter o ponteiro na codificação, isso cria um ponteiro oscilante e apresenta problemas de qualidade e segurança.
Em termos de qualidade, um ponteiro oscilante parece desleixado e cria bugs sutis. Isso ocorre porque o programa não sabe como agir, porque está sendo instruído a fazer algo, mas não pode porque o objeto se foi. Esse ato cria código aleatório ou deteriora o código de maneiras pequenas e sutis, difíceis de detectar. Esses bugs podem ser tão pequenos que fazem com que o programa se mova um pouco mais devagar, mas podem eventualmente fazer com que o programa - e até o computador - não funcione.
A maioria dos programas com indicadores pendentes funcionará inicialmente e poderá continuar funcionando por meses ou até anos antes que os erros se tornem óbvios. Mesmo os programas que fazem cálculos, significando que o ponteiro oscilante está na fórmula, ainda podem fazer cálculos simples. Essa é uma das razões pelas quais encontrar indicadores com oscilações pode ser tão difícil.
Até 2007, o indicador pendente só criava problemas de segurança em teoria. A empresa de software Watchfire® criou um programa que mostrava como os indicadores pendentes podem ser explorados, tornando o risco de segurança uma realidade. Os hackers conseguem se infiltrar em um programa por esse bug e podem injetar seu próprio código no programa defeituoso.