Fallos del tipo CWE-826
10 resultadosLiberação prematura de recurso durante seu tempo de vida esperado
O código libera um recurso (memória, arquivo, conexão de banco de dados, handle) antes que toda a lógica que depende dele termine de executar. Quando o código tenta usar o recurso já liberado, causa falha, corrupção de dados ou comportamento imprevisto. É essencialmente um problema de gerenciamento do ciclo de vida do recurso.
Um arquivo é fechado dentro de uma função interna enquanto o código chamador ainda pretende ler dele; ou uma conexão com banco de dados é devolvida ao pool de conexões antes da transação ser completada, levando outra requisição a usar a mesma conexão em estado inconsistente.
Rastreie claramente o escopo e o tempo de vida esperado de cada recurso. Use padrões como RAII (em C++), try-with-resources (Java) ou context managers (Python) para garantir que o recurso só seja liberado quando todas as operações dependentes terminarem. Valide antes de usar: se obtém o recurso, verificar se ainda está válido antes de qualquer operação.