Weaknesses of type CWE-772
89 resultsVazamento de recurso após fim de sua vida útil
Ocorre quando um programa aloca um recurso (memória, arquivo, conexão de banco de dados, socket) mas não o libera quando termina de usá-lo. O recurso fica ocupado indefinidamente, consumindo memória ou esgotando limites do sistema, levando a degradação de performance ou indisponibilidade da aplicação.
Uma função abre uma conexão com banco de dados para buscar dados, mas nunca fecha a conexão após usar. Em uma aplicação web com múltiplas requisições, isso drena o pool de conexões até que novas requisições falham com 'too many connections'.
Use sempre blocos try-finally ou estruturas de gerenciamento automático (como 'with' em Python, 'using' em C#) para garantir que recursos sejam liberados mesmo em caso de exceção. Em código legado, aplique code review focado em recursos não fechados e estabeleça padrões de cleanup obrigatórios.