CERT C および C++ チェッカーリファレンス
コンピューター緊急対応チーム (CERT) が定義しているセキュアコーディング基準にマッピングされる Community C/C++ チェッカーのリスト。
チェッカー名 | 説明 | 重要度のデフォルト値 | デフォルトで有効になりましたか? | バージョン |
---|---|---|---|---|
CERT.ALIGNOF | '__alignof__' の使用は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.ANONYMOUS.STRUCT | 無名構造体オブジェクトの定義は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.ANONYMOUS.UNION | 無名共用体オブジェクトの定義は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.ARRAY.LENGTH.ZERO | 長さゼロの配列は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.BITFIELD.NOT.INT | 'int' 型として定義されていないビットフィールドは言語拡張である | 4 | False (偽) | 2024.3 |
CERT.BITFIELD.SIGN.MODIFIER | 符号付きまたは符号なしとして定義されていないビットフィールドは実装定義である | 4 | False (偽) | 2024.3 |
CERT.CHROOT | chroot 関数の使用 | 4 | False (偽) | 2024.3 |
CERT.CHROOT.CHDIR | 'chroot' 関数の呼び出しの後に 'chdir' 関数の呼び出しがない | 4 | False (偽) | 2024.3 |
CERT.CONC.ATOMIC_COMP_FAIL_IN_LOOP | ループで疑似的に失敗する可能性のある関数はラップしてください | 4 | False (偽) | 2021.2 |
CERT.CONC.LIB_FUNC_USE | ライブラリ関数の使用時には競合状態を避けてください | 4 | False (偽) | 2021.2 |
CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED | ロックされている間はミューテックスを破棄しないでください | 4 | False (偽) | 2024.1 |
CERT.CONC.UNSAFE_COND_VAR | 条件変数の使用時に、スレッドセーフと活性を維持します | 4 | False (偽) | 2024.1 |
CERT.CONC.UNSAFE_COND_VAR_C | 条件変数の使用時に、スレッドセーフと活性を維持します | 4 | False (偽) | 2024.1 |
CERT.CONC.WAKE_IN_LOOP | 擬似的にループを起動する可能性のあるラップ関数 | 4 | False (偽) | 2024.1 |
CERT.CONC.WAKE_IN_LOOP_C | 擬似的にループを起動する可能性のあるラップ関数 | 4 | False (偽) | 2024.1 |
CERT.DCL.AMBIGUOUS_DECL | 構文的に曖昧な宣言を作成しないでください | 4 | False (偽) | 2024.1 |
CERT.DCL.REF_TYPE.CONST_OR_VOLATILE | 参照型を const または volatile で修飾しないでください | 4 | False (偽) | 2024.1 |
CERT.DCL.SAME_SCOPE_ALLOC_DEALLOC | 同一のスコープ内のペアとしての割り当ておよび割り当て解除関数をオーバーロードします | 4 | False (偽) | 2024.1 |
CERT.DCL.STD_NS_MODIFIED | 標準名前空間を変更しないでください | 4 | False (偽) | 2024.1 |
CERT.DCL.SWITCH.VAR_BEFORE_CASE | switch ステートメント内では最初の case ラベルより前で変数を宣言しないでください | 4 | False (偽) | 2021.2 |
CERT.EMPTY.AGR.INIT | 空の集約型初期化子は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.ENUM.LITERAL.TYPE.INT | 列挙リテラル定数が int 型ではない | 4 | False (偽) | 2024.3 |
CERT.ENUM.TYPE.SPECIFIER | 非標準の拡張列挙型指定子は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.ERR.ABRUPT_TERM | 突然プログラムを終了しないでください | 4 | False (偽) | 2020.1 |
CERT.ERR.CONV.STR_TO_NUM | 文字列を数値に変換する際にエラーを検出する | 4 | False (偽) | 2020.1 |
CERT.EXPR.DELETE_ARR.BASE_PTR | 不正な型のポインターを使用して配列を削除しないでください | 4 | False (偽) | 2020.1 |
CERT.EXPR.DELETE_PTR.INCOMPLETE_TYPE | 不完全な型へのポインターを削除しないでください | 4 | False (偽) | 2020.1 |
CERT.EXPR.PASS_NON_STD_LAYOUT | 実行境界を超えて標準ではないレイアウトタイプオブジェクトを渡さないでください | 4 | False (偽) | 2024.1 |
CERT.EXPR.VOLATILE.ADDR | 非 volatile ポインタを通して volatile オブジェクトにアクセスしてはいけません | 4 | False (偽) | 2020.1 |
CERT.EXPR.VOLATILE.ADDR.PARAM | 非 volatile ポインタを介して volatile オブジェクトを関数に渡さないでください | 4 | False (偽) | 2020.1 |
CERT.EXPR.VOLATILE.PTRPTR | 非 volatile ポインタへの参照を volatile ポインタのポインタに割り当てないでください | 4 | False (偽) | 2020.1 |
CERT.FIXED.MEMORY.ADDRESS | '@ address' の使用は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.LITERAL.ARRAY | シンボリック定数を使用してリテラル配列サイズ値を表す | 4 | False (偽) | 2024.3 |
CERT.LITERAL.BINARY | バイナリ定数の使用は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.LITERAL.BITFIELD | シンボリック定数を使用してリテラルビットフィールド値を表す | 4 | False (偽) | 2024.3 |
CERT.LITERAL.CHAR.CONST | シンボリック定数を使用してリテラル文字値を表す | 4 | False (偽) | 2024.3 |
CERT.LITERAL.FLT.CONST | シンボリック定数を使用してリテラル浮動小数点値を表す | 4 | False (偽) | 2024.3 |
CERT.LITERAL.INT.CONST | シンボリック定数を使用してリテラル整数値を表す | 4 | False (偽) | 2024.3 |
CERT.LITERAL.MULTIBYTE.CHAR | マルチバイト文字定数の割り当ては実装定義である | 4 | False (偽) | 2024.3 |
CERT.LITERAL.OCTAL | 8 進定数の使用は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.LITERAL.STR.CONST | シンボリック定数を使用してリテラル文字列値を表す | 4 | False (偽) | 2024.3 |
CERT.LITERAL.SUFFIX.I64 | 整数定数の接尾辞として I64 または UI64 を使用することは言語拡張である | 4 | False (偽) | 2024.3 |
CERT.MEM.OVERRIDE.DELETE | 'delete' の動的メモリ管理要件を変更してください | 4 | False (偽) | 2024.1 |
CERT.MEM.OVERRIDE.NEW | 'new' の動的メモリ管理要件を変更してください | 4 | False (偽) | 2024.1 |
CERT.MSC.ASCTIME | asctime() 関数に無効なデータを渡さないでください | 4 | False (偽) | 2021.2 |
CERT.MSC.NORETURN_FUNC_RETURNS | [[noreturn]] と宣言された関数から返さないでください | 4 | False (偽) | 2020.1 |
CERT.MSC.SEED_RANDOM | 疑似乱数ジェネレータを適切にシードする | 4 | False (偽) | 2021.2 |
CERT.MSC.SIG_HANDLER.POF | シグナルハンドラーは古いプレーン関数である必要があります | 4 | False (偽) | 2020.1 |
CERT.MSC.STD_RAND_CALL | 疑似乱数の生成に std::rand() を使用しないでください | 4 | False (偽) | 2020.1 |
CERT.MULTI.FUNC.ARG.CALLS | 副次式の評価の順序や、副作用が発生する順序には依存しない | 4 | False (偽) | 2024.3 |
CERT.NAME.DOLLAR.CHAR | オブジェクト名に文字 '$' を使用することは、ISO C では有効な識別子ではない | 4 | False (偽) | 2024.3 |
CERT.OOP.COPY_MUTATES | コピー操作でソースオブジェクトを変更してはいけません | 4 | False (偽) | 2024.1 |
CERT.OOP.CSTD_FUNC_USE | C 標準ライブラリ関数よりも特殊メンバー関数とオーバーロードされた演算子を優先します | 4 | False (偽) | 2020.1 |
CERT.OOP.CTOR.INIT_ORDER | コンストラクターメンバー初期化子を正規の順序で作成します | 4 | False (偽) | 2024.1 |
CERT.OOP.PTR_MEMBER.NO_MEMBER | メンバー演算子へのポインターを使用して、存在しないメンバーにアクセスしないでください | 4 | False (偽) | 2024.1 |
CERT.POS.THREAD.ASYNC_CANCEL | 非同期キャンセルが可能なスレッドを使用してはいけません | 3 | False (偽) | 2020.1 |
CERT.RTN.FLT.CAST.DBL | 浮動小数点型を返す関数の戻り値をキャストする | 4 | False (偽) | 2024.3 |
CERT.RTN.FLT.IMPLICIT.CAST.DBL | 浮動小数点型を返す関数の戻り値をキャストする | 4 | False (偽) | 2024.3 |
CERT.STATIC.SINGLE.USE | ファイルスコープの静的変数は 1 つの関数でのみアクセスされる | 4 | False (偽) | 2024.3 |
CERT.STMT.EXPR | ステートメント式の使用は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.STR.ARG.CONST_TO_NONCONST | const char ポインターを非 const char ポインター引数に渡さないでください | 4 | False (偽) | 2022.3 |
CERT.STR.ASSIGN.CONST_TO_NONCONST | const char ポインターを非 const char ポインターに割り当てないでください | 4 | False (偽) | 2022.3 |
CERT.STR.RANGE.FORMATTER | 文字列範囲フォーマッタの使用は実装定義である | 4 | False (偽) | 2024.3 |
CERT.STRUCT.FLEXIBLE_ARRAY_MEMBER | フレキシブル配列メンバーの宣言時には正しい構文を使用する | 4 | False (偽) | 2021.2 |
CERT.TU.UNUSED.GLOBAL.DECL | グローバル識別子は宣言されているが、この変換ユニットでは使用されない | 4 | False (偽) | 2024.3 |
CERT.TYPEOF | '__typeof__' の使用は言語拡張である | 4 | False (偽) | 2024.3 |
CERT.UNNAMED.MEMBER | 構造体または共用体における無名メンバーの定義は言語拡張である | 4 | False (偽) | 2024.3 |