EN JP CN

CS.RNRE

CS.RNRE

この警告は、null オブジェクト参照が逆参照されて null と比較される状況で報告されます。逆参照とチェックの間の追跡では、オブジェクト参照の変更はありません。つまり、逆参照で、オブジェクト参照は null になるか、または null チェックが不適切になる可能性が高くなります。

脆弱性とリスク

次の 3 つのうち 1 つを識別します。

  • 設計により null となる可能性のあるポインターが、適切なチェックなしに逆参照されました。これはランタイムエラーにつながります。
  • 条件が正しく記述されていないため、コードは意図したとおりに動作しません。
  • 冗長なチェックがあります。不要なコードが生成されます。

例 1

1                  public class A {
2                      public void foo() {
3                          A a = null;
4                          a.foo();
5                          if (a == null)
6                              a = new A();
7                      }
8                  }

変数 'a' では、Klocwork は 4 行目で指摘レポート (CS.RNRE) を生成します。メソッド 'foo' を呼び出して 4 行目で逆参照され、5 行目で 'a' は if ステートメントで null についてチェックされます。