CS.WRONG.CAST
この警告は、1 つのオブジェクトが、データを失ったかプログラム障害が発生した可能性がある別のオブジェクトにキャストされる状況で報告されます。
脆弱性とリスク
データが失われるか、プログラムが失敗する可能性があります。この状況は、キャストの後にプログラムが存在しないクラスフィールドにアクセスしようとすると、発生する可能性があります。
例
コピー
public class Base {
public int b;
}
public class Derived : Base {
public int a;
}
public class ClassCastTests {
public void foo() {
Derived d;
Base b = new Base();
d = (Derived)b;
}
}
クラス Object1 のオブジェクト o1 とクラス Object2 のオブジェクト o2 は 9 ~ 10 行目で宣言されます。11 行目で、Object2 は Object1 にキャストされますが、これは無効です。
外部参考資料
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。