CWARN.NULLCHECK.FUNCNAME

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

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

脆弱性とリスク

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

脆弱コード例

コピー
  void foo() {
  }
  
  void bar() {
    if (foo != 0)  
      return;
  }

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

セキュリティトレーニング

Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。