CWARN.NOEFFECT.UCMP.LT
无符号值的无效比较始终为 false
CWARN.NOEFFECT.UCMP.LT 检查器可标记宏外部的代码,其中,无符号值与 0 的比较始终为 false。
漏洞与风险
如果 a 为无符号值,a < 0 和 0 > a 的比较始终为 false。这些比较没有任何效果,因此可能无法达到设计意图。
漏洞代码示例
复制
int foo(unsigned int a) {
if (a < 0)
return 1;
else
return 2;
}
Klocwork 标记了第 2 行,其中 0 < a 的比较始终为 false。