PRECISION.LOSS.CALL
関数呼び出し中の精度の損失
PRECISION.LOSS チェッカーは、関数呼び出し中のもっと小さいデータ型に対する暗黙的なキャストによってデータ精度の損失が起こる可能性のあるインスタンスを検出します。
脆弱性とリスク
詳細な環境によっては、インスタンスのこの状況は、バッファオーバーフローになる場合、悪用される可能性があります。
脆弱コード例
コピー
void foo(unsigned char v);
void test(unsigned long data){
foo(data);
}
Klocwork は、unsigned long が unsigned char に変換されている 3 行目にフラグを立てます。
関連チェッカー
外部参考資料
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。