EN JP CN

CWARN.NULLCHECK.FUNCNAME

CWARN.NULLCHECK.FUNCNAME

無効な関数アドレスチェック

CWARN.NULLCHECK.FUNCNAME チェッカーは、関数アドレスが直接 0 と比較されているインスタンスを検出します。

脆弱性とリスク

関数アドレスは決して 0 にはなりません。このためこれを 0 と比較すると、常に false か、常に true になります。このような比較は無意味であるため、設計の意図が達成されない可能性があります。

脆弱コード例

1  void foo() {
2  }
3  
4  void bar() {
5    if (foo != 0)  
6      return;
7  }

Klocwork 関数名 foo が 0 と比較されている 5 行目にフラグを立てます。