C and C++


LANG.STRUCT.CALLSTACK : 過度のスタックの深さ

要旨

呼び出しスタックサイズが、設定したしきい値を超えています。

プロパティ

クラス名 Excessive Stack Depth
日本語クラス名 過度のスタックの深さ
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.CALLSTACK
カテゴリー
CWE CWE:400 Uncontrolled Resource Consumption
  CWE:410 Insufficient Resource Pool
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Excessive Stack Depth"

void bigbuf(void){
    char buf[1201329834]; 
    /* ... */
}

void lang_struct_callstack(void){  /* 'Excessive Stack Depth' warning issued here */
    bigbuf();
}

注釈

このワーニングは、スタックの深さがしきい値を超える原因となる関数呼び出し先にて発生します。

以下はこのワーニングクラスの設定項目です。

STACK_DEPTH_THRESHOLD ワーニングを発生させる呼び出しスタックサイズのしきい値を、バイト単位で設定します。
STACK_DEPTH_UNDEFINED_FUNCTION_SIZE,
STACK_DEPTH_COMPILER_PADDING,
STACK_DEPTH_ACTIVATION_RECORD_CONSTANTS
呼び出しスタック空間の合計値の計算に用いるオーバーヘッドを設定します。

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

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