Falhas do tipo CWE-590
21 resultadosLiberação de memória não alocada no heap
Ocorre quando código tenta liberar (free, delete) memória que não foi alocada dinamicamente no heap, como variáveis locais na pilha ou ponteiros inválidos. Isso corrompe o gerenciador de memória e causa crashes ou comportamento indefinido.
Exemplo
Um programa aloca um buffer local na pilha (char buf[100]) e depois tenta fazer free(buf) como se fosse heap. Ou recebe um ponteiro de origem desconhecida e chama delete sem verificar se realmente veio de malloc/new.
Como mitigar
Rastreie a origem de cada ponteiro e libere apenas o que você mesmo alocou no heap. Use análise estática (Clang Static Analyzer, Valgrind) para detectar mismatches free/malloc. Em C++, prefira smart pointers (unique_ptr, shared_ptr) que gerenciam liberação automaticamente.