Fallos del tipo CWE-762

12 resultados

Rotinas de gerenciamento de memória desemparelhadas

Quando código aloca memória com uma função (ex: malloc) mas libera com outra incompatível (ex: delete do C++), causando corrupção de heap ou crash. O perigo: comportamento imprevisível, potencial execução de código arbitrário ou negação de serviço, dependendo de como o alocador interno trabalha.

Ejemplo

Um desenvolvedor aloca memória com malloc() em C, mas em outra parte do código (ou após refatoração) tenta liberar com free() de uma biblioteca C++ que usa new/delete. Isso causa falha no alocador porque cada função espera um metadado diferente no bloco de memória.

Cómo mitigar

Use sempre o mesmo par de funções (malloc/free ou new/delete) em todo o projeto, preferencialmente encapsulando alocações em classes RAII (C++). Code review focado em alocações e ferramentas como Valgrind ou AddressSanitizer detectam esses desemparelhamentos em tempo de teste.