Weaknesses of type CWE-590
20 resultsLiberaçã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.
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.
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.