CS.FRACTION.LOSS

整数型を除算して、浮動小数点エンティティに結果を割り当てるときの小数部欠落の可能性です。

脆弱性とリスク

2 つの整数値が除算されると、結果も整数値に切り捨てられます (小数部欠落部分を含む)。結果が浮動小数点の変数に割り当てられると、意図が小数部欠落なしで実数を取得する可能性が最も高くなります。

例 1

コピー
  class Foo {
    float Devider(long a, int b) {
      decimal d;
      float f = a / b; // defect
      d = a / b;       // defect
      f = b % 2;       // defect
      f = a / f;       // OK - one operand is not integral
      return f;
    }
 }

外部参考資料

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

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