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 が提供しているアプリケーションセキュリティトレーニング教材。