Fallos del tipo CWE-590

21 resultados

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

Ocorre quando o código tenta liberar (com free(), delete ou equivalente) uma região de memória que não foi alocada dinamicamente no heap. Isso pode corromper o gerenciador de memória, causar crashes ou comportamento imprevisível, pois o allocator tentará manipular estruturas de controle que não lhe pertencem.

Ejemplo

Um programa aloca um array local na stack (char buf[100]) e depois tenta liberar com free(buf), ou libera um ponteiro que aponta para dados globais. O allocator não reconhece o endereço como válido e a operação causa undefined behavior.

Cómo mitigar

Rastreie claramente qual memória foi alocada dinamicamente (malloc, new, calloc) versus stack ou globais. Use ferramentas como Valgrind, AddressSanitizer ou análise estática para detectar mismatches entre alocação e liberação. Implemente code review rigoroso em C/C++, especialmente em gerenciamento manual de memória.