Fallos del tipo CWE-1091

1 resultado

Uso de objeto sem invocar método destrutor

Ocorre quando um objeto é descartado ou sai de escopo sem que seu método destrutor seja chamado explicitamente. Isso pode deixar recursos (memória, arquivos, conexões) não liberados, causando vazamento e comportamento indefinido em linguagens que dependem de destructores para limpeza (C++, Python com __del__, etc).

Ejemplo

Uma classe gerencia um arquivo aberto no construtor. Se o objeto é deletado manualmente sem chamar o destrutor, ou se uma exceção interrompe a destruição automática, o arquivo permanece aberto, consumindo descritores do sistema e podendo impedir outras operações.

Cómo mitigar

Use padrões como RAII (Resource Acquisition Is Initialization) em C++, context managers em Python (with), ou try-finally para garantir limpeza. Em linguagens modernas, confie no garbage collector ou implemente mecanismos explícitos de fechamento quando necessário.