EN JP CN

UNINIT.CTOR.MIGHT

UNINIT.CTOR.MIGHT

コンストラクタの初期化されていない変数の可能性があります

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

脆弱性とリスク

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

軽減と防止

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

脆弱コード例

1  class C {
2      int i;

3    public:
4      C(bool flag) {
5        if (flag) i = 0;
6      }
7  };

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

関連チェッカー