EN JP CN

CWARN.NOEFFECT.UCMP.LT

CWARN.NOEFFECT.UCMP.LT

符号なし値の無効な比較は常に false になります

CWARN.NOEFFECT.UCMP.LT チェッカーは、常に false になる符号なし値とゼロとの比較が存在するマクロの外側でコードにフラグを立てます。

脆弱性とリスク

'a' が符号なし値の場合、a < 0 と 0 > a の比較は常に false です。この比較は無意味であるため、設計の意図が達成されない可能性があります。

脆弱コード例

1  int foo(unsigned int a) {
2    if (a < 0)  
3      return 1;
4    else
5      return 2;
6  }

Klocwork 0 < a の比較が常に false である 2 行目にフラグを立てます。