Weaknesses of type CWE-468

4 results

Escalonamento incorreto de ponteiros

Ocorre quando o código multiplica ou escala um ponteiro pelo tamanho errado de tipo de dado, causando acesso a endereços de memória indevidos. O desenvolvedor confunde o número de elementos com o tamanho em bytes, levando a leituras/escritas fora do limite ou em regiões não autorizadas.

Example

Um código aloca memória para um array de inteiros (4 bytes cada), mas ao calcular offset usa `ponteiro + indice * sizeof(char)` em vez de `sizeof(int)`. Isso faz acessar endereços errados, podendo ler dados sensíveis ou corromper a pilha.

How to mitigate

Use abstrações de linguagem de alto nível (arrays, slices) quando possível. Se trabalhar com aritmética de ponteiros, sempre verifique o tamanho do tipo com sizeof() explicitamente e valide os índices antes de acessar. Em C, prefira acesso seguro via índice em vez de manipulação direta de ponteiros.