CS.NRE.FUNC.CALL.MUST

An object reference value from a call to a function that might return null will be passed to a function that might dereference it without checking for null.

Vulnerability and risk

Dereferencing a null object reference is a critical runtime problem that will crash the application on some operating systems and throw a runtime exception on others.

Example 1

Copy
  public class A {
     public void abc() {}
     public void foo(A a) {
       if (flag2)
         return;
       a.abc();
     }
  
     public A boo() {
      if (flag3)
        return new A();
      return null;
    }
 
    public void var() {
      A a = boo();
      foo(a);
    }
 
    private bool flag2;
    private bool flag3;
  }

Klocwork produces an issue report (CS.NRE.FUNC.CALL.MUST) at line 17 for variable 'a'. Variable 'a' is assigned to a value which might be null, and which comes from a call to function 'boo' at line 16. This variable will be passed as argument 1 to function 'foo' at line 17, which may dereference it.

Security training

Application security training materials provided by Secure Code Warrior.