Weaknesses of type CWE-588

3 results

Acesso a membro de ponteiro não-estruturado

Ocorre quando o código tenta acessar um campo membro (via operador `.` ou `->`) de um ponteiro que não aponta para uma estrutura, classe ou tipo composto. O compilador pode não detectar isso se houver casting implícito ou confusão de tipos, resultando em leitura/escrita em endereços de memória inválidos.

Example

Um desenvolvedor faz casting incorreto de um `void*` ou de um tipo inteiro para um ponteiro de struct, depois acessa seus campos. Exemplo: `int x = 5; MyStruct* s = (MyStruct*)&x; s->field = 10;` — está sobrescrevendo memória aleatória.

How to mitigate

Evite casts de tipos genéricos (void*, inteiros) para ponteiros de struct sem validação; use type-safe languages ou sistemas de tipos rigorosos (TypeScript, Rust); revise cuidadosamente casting em C/C++ com ferramentas como AddressSanitizer ou Valgrind para detectar acessos inválidos em testes.