EN JP CN

CS.NRE.FUNC.MUST

CS.NRE.FUNC.MUST

null を返す可能性がある関数の呼び出しによってオブジェクト参照値は、明示的に、またはそれを null についてチェックせずに逆参照する可能性がある関数を呼び出すことによって、逆参照されます。

脆弱性とリスク

null オブジェクト参照の逆参照は、一部のオペレーティングシステムでアプリケーションのクラッシュや実行時例外のスローを引き起こす実行時の重大な問題です。

例 1

1                  public class A {
2                      public A foo() {
3                          if (flag)
4                              return null;
5                          return new A();
6                      }
7  
8                      public void var() {
9                          A a = foo();
10                         a.foo();
11                     }
12 
13                     private bool flag;
14                 }

変数 'a' では、Klocwork は 10 行目で指摘レポート (CS.NRE.FUNC.MUST) を生成します。変数 'a' は 9 行目で null になる可能性がある値、および関数 'foo' の呼び出しによって返される値に割り当てられ、10 行目で逆参照されます。