Skip to main content

IAR Embedded Workbench for RISC-V 3.40

PTR-null-cmp-aft

In this section:
Synopsis

A pointer is dereferenced, then compared with NULL.

Enabled by default

Yes

Severity/Certainty

High/Medium

highmedium.png
Full description

A pointer is dereferenced, then compared with NULL. Dereferencing a pointer implicitly asserts that it is not NULL. Comparing it with NULL after this suggests that it might have been NULL when it was dereferenced. This check is identical to CERT-EXP34-C_e.

Coding standards
CERT EXP34-C

Do not dereference null pointers

CWE 476

NULL Pointer Dereference

Code examples

The following code example fails the check and will give a warning:

#include <stdlib.h>

int example(void) {
  int *p;
  *p = 4;  //line 8 asserts that p may be NULL  
  if (p != NULL) {
    return 0;
  }
  return 1;
}

The following code example passes the check and will not give a warning about this issue:

#include <stdlib.h>

void example(int *p) {
  if (p == NULL) {
    return;
  }
  *p = 4;
}