EN JP CN

UNINIT.CTOR.MUST

UNINIT.CTOR.MUST

コンストラクタの初期化されていない変数

UNINIT.CTOR.MUST チェッカーは、コンストラクタで初期化されていなかったクラス変数を検出します。

脆弱性とリスク

C++ では、プリミティブデータ型の変数は明示的に初期化する必要があります。クラスメソッドの初期化されていないメンバーが使用されると、通常、予想外の動作につながり、セキュリティに影響を及ぼす可能性があります。

軽減と防止

初期化されていない変数の使用を回避するには、コンストラクタがクラスフィールドをすべて初期化したことを確認します。

脆弱コード例

1  class C {
2      int i;
3      int j;
4    public:
5      C() {
6      this->j = 0; 
7      }
8  };

Klocwork コンストラクタが終了するときでも、'this->i' 変数の値が初期化されないままであることを示す 7 行目にフラグを立てます。

関連チェッカー