Falhas do tipo CWE-775

6 resultados

Vazamento de descritor de arquivo ou handle

Ocorre quando o código abre um arquivo, conexão de rede ou outro recurso do sistema, mas nunca o fecha corretamente. O descritor fica ocupado na tabela do processo até o programa terminar, esgotando o limite de recursos disponíveis. Isso causa falhas, negação de serviço ou comportamento impredizível.

Exemplo

Uma função que abre um arquivo para leitura dentro de um loop, mas só fecha fora do loop (ou nunca fecha em caminhos de erro). Após muitas iterações, o processo atinge o limite ulimit de file descriptors e falha ao abrir novos arquivos.

Como mitigar

Use blocos try-finally ou contextos gerenciados (with em Python, try-with-resources em Java) para garantir fechamento automático. Em C/C++, implemente padrões como RAII ou revise manualmente cada close() correspondente a cada open().