Weaknesses of type CWE-826

10 results

Liberação Prematura de Recurso Durante Ciclo de Vida Esperado

A aplicação libera ou fecha um recurso (arquivo, conexão, memória, socket) antes do tempo, enquanto o código ainda espera usá-lo. Isso causa travamentos, corrupção de dados ou comportamento impredizível quando o recurso liberado é acessado novamente.

Example

Um banco de dados fecha a conexão dentro de um bloco try-catch, mas o bloco finally tenta executar queries usando essa conexão já fechada. Ou um arquivo é desalocado da memória enquanto uma thread ainda referencia seus dados.

How to mitigate

Use try-with-resources ou context managers (Python with, Java try-with-resources) para garantir liberação no momento correto. Implemente reference counting ou garbage collection seguro; revise fluxos de controle para garantir que recursos não sejam fechados enquanto em uso ativo.