Falhas do tipo CWE-663
1 resultadoUso de função não-reentrante em contexto concorrente
Uma função não-reentrante (que não pode ser chamada simultaneamente por múltiplas threads ou em situações de concorrência) é utilizada em um ambiente onde essa concorrência é possível. Isso causa corrupção de dados, condições de corrida ou comportamento indefinido, pois a função mantém estado compartilhado que é destruído quando chamadas simultâneas interferem uma na outra.
Uma biblioteca que usa uma variável estática global para armazenar contexto (como um buffer temporário ou um ponteiro de estado) é chamada por múltiplas threads ao mesmo tempo. A thread A escreve dados no buffer enquanto a thread B o lê, resultando em dados corrompidos ou acesso a memória inválida.
Substitua funções não-reentrantes por versões thread-safe (como versões que usam _r ou _s no final do nome, ou implementadas com locks/mutexes). Se isso não for viável, sincronize o acesso à função com mecanismos de sincronização (mutex, semáforo) ou procure alternativas que sejam reentrantes por design.