Weaknesses of type CWE-590

21 results

Liberação de memória não alocada no heap

Ocorre quando o código tenta liberar (free) uma região de memória que não foi alocada dinamicamente no heap, como variáveis locais na stack, ponteiros para dados estáticos ou endereços inválidos. Isso corrompe o gerenciador de memória e causa crash ou comportamento imprevisível.

Example

Um desenvolvedor aloca uma string no stack (char buffer[100]) e depois tenta fazer free(buffer) em C/C++, ou acidentalmente passa um endereço de variável global para delete em C++. O sistema tenta liberar memória que nunca foi requisitada, quebrando as estruturas internas do alocador.

How to mitigate

Use análise estática (AddressSanitizer, Valgrind, ferramentas lint) para detectar mismatches entre alocação e liberação. Prefira RAII em C++ (smart pointers como unique_ptr, shared_ptr) e em linguagens modernas evite manipulação manual de memória. Code review focado em padrões de alocação/desalocação.