Weaknesses of type CWE-910
2 resultsUso de descritor de arquivo expirado
A fraqueza ocorre quando o código tenta usar um descritor de arquivo (file descriptor) após ele ter sido fechado ou invalidado pelo sistema operacional. Isso pode levar a comportamentos impredizíveis, corrupção de dados ou leitura/escrita em arquivo errado, porque o SO pode reatribuir o mesmo número de descritor a outro arquivo.
Um processo abre um arquivo (fd=3), passa esse descritor para uma thread que o fecha, mas a thread original continua tentando escrever em fd=3 sem saber que ele foi fechado. Se o SO abrir outro arquivo, este pode receber fd=3, e a escrita vai corromper o arquivo errado.
Implemente sincronização explícita entre threads antes de fechar descritores (use mutexes ou semáforos), valide se o descritor ainda é válido antes de usá-lo, e considere usar abstrações de mais alto nível (streams, wrappers) que gerenciam o ciclo de vida do recurso automaticamente.