Weaknesses of type CWE-768
1 resultAvaliação de curto-circuito incorreta em condições lógicas
Ocorre quando a lógica de uma expressão condicional não usa corretamente os operadores de curto-circuito (como && e ||), fazendo com que código que deveria ser pulado seja executado, ou vice-versa. Isso pode levar a comportamentos inesperados: desde lógica de negócio quebrada até bypasses de validação e segurança.
Um desenvolvedor escreve `if (user.isAdmin || checkPermission(user))` esperando que a função checkPermission() não seja chamada se o usuário já é admin. Mas se usar | (OR bit a bit) em vez de || (OR lógico), a função sempre executará, podendo causar efeitos colaterais indesejados ou contornar controles de acesso.
Use explicitamente os operadores de curto-circuito corretos (&& para AND, || para OR) em condições. Revise lógica condicional em testes e code review, especialmente em validações de segurança, e evite misturar operadores bit a bit com lógica booleana.