C and C++


LANG.STRUCT.TMD : 過度の多重間接参照

要旨

設定ファイルパラメータの MAX_PERMITTED_DEREFS のしきい値(デフォルトは 1)を超える回数の多重間接参照が存在しています。

プロパティ

クラス名 Too Many Dereferences
日本語クラス名 過度の多重間接参照
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.TMD
カテゴリー
CWE CWE:710 Improper Adherence to Coding Standards
POW10 POW10:9 Limit the use of pointers. Use no more than two levels of dereferencing per expression.
JPL JPL:27 Use no more than two levels of dereferencing per object reference.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Too Many Dereferences"

int lang_struct_tmd(int *x, int *y, int **z){
    int a;
    int *p;

    a = x[y[1]];       /* 'Too Many Dereferences' warning issued here */
    *(x + *y) = 2;     /* 'Too Many Dereferences' warning issued here */
    if (a){
      a = **z;         /* 'Too Many Dereferences' warning issued here */
    }

    p = *z + a;                          /* ok */
    if (p){
        *x = *y;                         /* ok */
    }
    return  *x - *y;                     /* ok */
}

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

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