Falhas do tipo CWE-911
16 resultadosAtualização incorreta de contador de referências
É quando o código falha em incrementar ou decrementar corretamente um contador que rastreia quantas vezes um objeto está sendo usado. Isso leva a liberação prematura de memória (enquanto ainda está em uso) ou vazamento (objeto nunca é liberado), causando crashes ou exploração de memória corrompida.
Um gerenciador de conexões de banco de dados que decrementa o contador ao fechar uma conexão, mas não incrementa quando um novo cliente a referencia. Outras threads continuam usando a conexão já marcada como livre, ou a conexão é realmente liberada enquanto ainda está ativa.
Use estruturas de dados thread-safe (como atomic operations ou locks) para todas as operações de contagem; implemente testes automatizados que simulem concorrência; considere usar RAII (Resource Acquisition Is Initialization) ou smart pointers (se em C++) para automatizar o gerenciamento de referências.