Weaknesses of type CWE-764

1 result

Múltiplos locks do mesmo recurso crítico

Ocorre quando o código tenta adquirir o mesmo lock (mutex, semáforo, etc.) mais de uma vez sem liberá-lo, causando deadlock ou travamento da thread. O risco é que a aplicação congela, nega serviço ou entra em estado inconsistente, comprometendo disponibilidade e integridade.

Example

Uma função trava um mutex no início, chama outra função que também tenta travar o mesmo mutex, e fica bloqueada aguardando indefinidamente. Se o mutex não for reentrant, a thread nunca consegue progredir e a aplicação congela.

How to mitigate

Use mutexes reentrantes (recursive/reentrant locks) quando precisar de acquisição aninhada, ou reestruture o código para garantir que cada lock seja adquirido apenas uma vez por contexto de execução. Revise fluxos de chamadas para identificar locks redundantes.