PRECISION.LOSS

精度の損失

PRECISION.LOSS チェッカーは、もっと小さいデータ型に対する暗黙的なキャストによってデータ精度の損失が起こる可能性のあるインスタンスを検出します。

脆弱性とリスク

詳細な環境によっては、インスタンスのこの状況は、バッファオーバーフローになる場合、悪用される可能性があります。

軽減と防止

精度の損失キャストが意図的なら、キャスト元を適切なビットマスクでマスクする必要があります。例:

コピー
char c = (i & 0xFF);

脆弱コード例

コピー
  void foo(int i) {
      char c;
      c = i; 
  }

Klocwork は、もっと小さいデータ型に対する暗黙的なキャスト char 'c' がある 3 行目にフラグを立てます。

関連チェッカー

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

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