Weaknesses of type CWE-467

4 results

Uso de sizeof() em tipo ponteiro

O desenvolvedor usa sizeof() em um ponteiro em vez de no tipo ou estrutura apontada, obtendo o tamanho do ponteiro (geralmente 4 ou 8 bytes) em vez do dado real. Isso causa cópias incompletas de memória, buffers subdimensionados e corrupção de dados.

Example

Ao alocar espaço para um array: int *arr = malloc(sizeof(arr)) aloca apenas 8 bytes (tamanho do ponteiro em 64 bits), não o espaço para 100 inteiros. Resultado: estouro de buffer e comportamento indefinido.

How to mitigate

Use sizeof(*arr) ou sizeof(int) em vez de sizeof(arr). Ferramentas estáticas (clang-analyzer, cppcheck) detectam esse padrão. Revise todo malloc/memcpy que envolva ponteiros em code review.