C and C++ Binaries


LANG.STRUCT.NTAD : 参照後のNULLテスト

要旨

NULLチェックされたポインタは、チェック前に既に参照されています。

プロパティ

クラス名 Null Test After Dereference
日本語クラス名 参照後のNULLテスト
クラス分類 信頼性 (reliability)
ニーモニック LANG.STRUCT.NTAD
カテゴリー
CWE CWE:690 Unchecked Return Value to NULL Pointer Dereference
  CWE:696 Incorrect Behavior Order
CERT-C CERT-C:EXP34-C Do not dereference null pointers
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで有効になっています。チェックを無効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += discard class="Null Test After Dereference"

void f(char c);

char lang_struct_ntad(char *q){
    int a;
    a = q[3];
    f(a);
    if (q){   /* 'Null Test After Dereference' warning issued here */
              /* 'Redundant Condition' warning also issued
               * - q cannot be NULL at this point: if it was NULL then the program would
               *   have crashed when it was dereferenced above.
               */
        a = q[0];
    }
    return a;
}

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。