CERT C++ ガイドライン

以下の表は、CERT C ガイドラインと Klocwork C++ チェッカーの対応関係を示しています。

ガイドライン チェッカー名および説明
ARR30-C(L2)

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

ABV.UNKNOWN_SIZE  バッファオーバーフロー - 配列インデックスが範囲外

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

ARR37-C(L2)

CERT.ARR.PTR.ARITH  演算式にポインターが使用されています

ARR38-C(L2)

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ARR39-C(L2)

CERT.ARR.PTR.ARITH  演算式にポインターが使用されています

CERT ARR30-C (L2): Do not form or use out-of-bounds pointers or array subscripts

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

ABV.UNKNOWN_SIZE  バッファオーバーフロー - 配列インデックスが範囲外

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

CERT ARR37-C (L2): Do not add or subtract an integer to a pointer to a non-array object

CERT.ARR.PTR.ARITH  演算式にポインターが使用されています

CERT ARR38-C (L2): Guarantee that library functions do not form invalid pointers

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

CERT ARR39-C (L2): Do not add or subtract a scaled integer to a pointer

CERT.ARR.PTR.ARITH  演算式にポインターが使用されています

CERT CON33-C (L3): Avoid race conditions when using library functions

CERT.CONC.LIB_FUNC_USE  ライブラリ関数の使用時には競合状態を避けてください

CERT CON37-C (L3): Do not call signal() in a multithreaded program

MISRA.STDLIB.SIGNAL  signal.h の信号処理装置の使用

CERT CON40-C (L2): Do not refer to an atomic variable twice in an expression

CERT.CONC.ATOMIC_TWICE_EXPR  1 つの式でアトミック変数を 2 回参照しないでください

CERT CON41-C (L3): Wrap functions that can fail spuriously in a loop

CERT.CONC.ATOMIC_COMP_FAIL_IN_LOOP  ループで疑似的に失敗する可能性のある関数はラップしてください

CERT CON50-CPP (L3): Do not destroy a mutex while it is locked

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  ロックされている間はミューテックスを破棄しないでください

CERT CON54-CPP (L3): Wrap functions that can spuriously wake up in a loop

CERT.CONC.WAKE_IN_LOOP  擬似的にループを起動する可能性のあるラップ関数

CERT CON55-CPP (L3): Preserve thread safety and liveness when using condition variables

CERT.CONC.UNSAFE_COND_VAR  条件変数の使用時に、スレッドセーフと活性を維持します

CERT CTR50-CPP (L2): Guarantee that container indices and iterators are within the valid range

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

SV.TAINTED.ALLOC_SIZE  メモリ割り当て時の未検証の整数の使用

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.CALL.LOOP_BOUND  関数呼び出しのループ条件での未検証の整数の使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

CERT CTR51-CPP (L2): Use valid references

ITER.CONTAINER.MODIFIED  無効な反復子の使用

CERT CTR52-CPP (L1): Guarantee that library functions do not overflow

ITER.END.OUTPARAM.MIGHT  出力反復子としての 'end' の使用

ITER.END.OUTPARAM.MUST  出力反復子としての 'end' の使用

CERT CTR55-CPP (L2): Do not use an additive operator on an iterator if the result would overflow

ITER.ADVANCE.NONADJACENT  反復子間の距離は 1 より大きい値にする

CERT DCL30-C (L2): Declare objects with appropriate storage durations

LOCRET.ARG  関数がローカル変数のアドレスを返しています

LOCRET.GLOB  関数がローカル変数のアドレスを返しています

LOCRET.RET  関数がローカル変数のアドレスを返しています

CERT DCL39-C (L3): Avoid information leakage when passing a structure across a trust boundary

PORTING.STORAGE.STRUCT  構造の要素のバイト位置が配置属性およびパッケージ属性に依存している可能性があります。

CERT DCL40-C (L3): Do not create incompatible declarations of the same function or object

MISRA.FUNC.PARAMS.IDENT  関数の宣言と定義で使用される識別子が一致していません

CERT DCL50-CPP (L1): Do not define a C-style variadic function

MISRA.FUNC.VARARG  関数が可変数の引数を持っています

CERT DCL51-CPP (L3): Do not declare or define a reserved identifier

MISRA.DEFINE.WRONGNAME  標準ライブラリからの名前がマクロ名に使用されています

MISRA.DEFINE.WRONGNAME.UNDERSCORE  予約名がマクロ名に使用されています

MISRA.STDLIB.WRONGNAME  標準ライブラリのマクロ、オブジェクトまたは関数の名前が再使用されています

MISRA.STDLIB.WRONGNAME.UNDERSCORE  予約名が言語エンティティの名前に使用されています

MISRA.UNDEF.WRONGNAME  標準ライブラリからの名前が定義されていません

MISRA.UNDEF.WRONGNAME.UNDERSCORE  予約名が定義されていません

CERT DCL52-CPP (L3): Never qualify a reference type with const or volatile

CERT.DCL.REF_TYPE.CONST_OR_VOLATILE  参照型を const または volatile で修飾しないでください

CERT DCL53-CPP (L3): Do not write syntactically ambiguous declarations

CERT.DCL.AMBIGUOUS_DECL  構文的に曖昧な宣言を作成しないでください

CERT DCL54-CPP (L3): Overload allocation and deallocation functions as a pair in the same scope

CERT.DCL.SAME_SCOPE_ALLOC_DEALLOC  同一のスコープ内のペアとしての割り当ておよび割り当て解除関数をオーバーロードします

CERT DCL57-CPP (L2): Do not let exceptions escape from destructors or deallocation functions

MISRA.DTOR.THROW  デストラクタにスローします

CERT DCL58-CPP (L2): Do not modify the standard namespaces

CERT.DCL.STD_NS_MODIFIED  標準名前空間を変更しないでください

CERT DCL59-CPP (L3): Do not define an unnamed namespace in a header file

MISRA.NAMESPACE.UNMD  ヘッダーファイルに名前のない名前空間があります

CERT ENV30-C (L3): Do not modify the object referenced by the return value of certain functions

CXX.STDLIB.ILLEGAL_WRITE  標準ライブラリ関数 localeconv、getenv、setlocale、または strerror が返すポインターは、必ずそれらが const-qualified 型を指すポインターを持つかのように使用する必要があります。

CERT ENV32-C (L1): All exit handlers must return normally

CERT.EXIT.HANDLER_TERMINATE  すべての exit ハンドラーは正常に戻る必要があります

CERT ENV33-C (L1): Do not call system()

SV.CODE_INJECTION.SHELL_EXEC  シェル実行へのコマンドインジェクション

CERT ENV34-C (L3): Do not store pointers returned by certain functions

CXX.STDLIB.ILLEGAL_REUSE  標準ライブラリ関数 asctime または同様の関数によって返されるポインタは、同じ関数の後続の呼び出しに続いては使用しません

CERT ERR30-C (L1): Set errno to zero before calling a library function known to set errno

CXX.ERRNO.INCORRECTLY_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックは必要ない

CXX.ERRNO.NOT_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックが欠落している

CXX.ERRNO.NOT_SET  ライブラリ関数を呼び出す前に、errno はゼロにリセットされていない

CERT ERR32-C (L3): Do not rely on indeterminate values of errno

MISRA.INCL.SIGNAL.2012  標準ヘッダーファイル signal.h は使用しない

MISRA.STDLIB.SIGNAL  signal.h の信号処理装置の使用

CERT ERR33-C (L1): Detect and handle standard library errors

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

CERT ERR34-C (L2): Detect errors when converting a string to a number

CERT.ERR.CONV.STR_TO_NUM  文字列を数値に変換する際にエラーを検出する

MISRA.STDLIB.ATOI  ライブラリ stdlib.h から 'atof'、'atoi' または 'atol' が使用されています

SV.BANNED.RECOMMENDED.SCANF  禁止が推奨されているAPI: 安全でない scanf 型関数

CERT ERR50-CPP (L3): Do not abruptly terminate the program

CERT.ERR.ABRUPT_TERM  突然プログラムを終了しないでください

MISRA.TERMINATE  terminate() 関数が明示的に呼び出されています

CERT ERR51-CPP (L2): Handle all exceptions

MISRA.CATCH.ALL  try-catch ブロックに省略記号例外ハンドラーがありません

CERT ERR52-CPP (L3): Do not use setjmp() or longjmp()

MISRA.STDLIB.LONGJMP  setjmp マクロまたは longjmp 関数の使用

CERT ERR53-CPP (L3): Do not reference base classes or class data members in a constructor or destructor function-try-block handler

MISRA.CTOR.TRY.NON_STATIC  コンストラクタまたはデストラクタの関数 try-catch ブロックが非スタティックなメンバーを参照しています

CERT ERR54-CPP (L1): Catch handlers should order their parameter types from most derived to least derived

MISRA.CATCH.NOALL  省略記号例外ハンドラーが try-catch ブロックの最後に置かれていません

MISRA.CATCH.WRONGORD  try-catch ブロックで基本例外クラスのハンドラーが派生例外クラスのハンドラーよりも先に置かれています

CERT ERR57-CPP (L3): Do not leak resources when handling exceptions

CL.MLK  メモリリーク - デストラクタで発生

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

RH.LEAK  リソースリーク

CERT ERR59-CPP (L2): Do not throw an exception across execution boundaries

CERT.EXCEPTION.OVER.BOUNDARY  実行境界を越えてスローされた例外

CERT ERR61-CPP (L3): Catch exceptions by lvalue reference

MISRA.CATCH.BY_VALUE  クラス タイプの例外オブジェクトが値によってキャッチされています

CERT ERR62-CPP (L3): Detect errors when converting a string to a number

CERT.ERR.CONV.STR_TO_NUM  文字列を数値に変換する際にエラーを検出する

CERT EXP34-C (L1): Ensure a null pointer is not dereferenced

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  null ポインターが逆参照されます

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

CERT EXP39-C (L3): Do not access a variable through a pointer of an incompatible type

CXX.CAST.OBJ_PTR_TO_OBJ_PTR   オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト

CERT EXP42-C (L1): Do not compare padding data

CERT.MEMCMP.PADDED_DATA  パディングデータを比較しないでください

CERT EXP45-C (L2): Do not perform assignments in selection statements

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

MISRA.ASSIGN.COND  条件内で代入演算子が使用されています

CERT EXP46-C (L2): Do not use a bitwise operator with a Boolean-like operand

MISRA.LOGIC.OPERATOR.NOT_BOOL  論理演算ではない演算子のオペランドが実質的にはブール値です

CERT EXP47-C (L2): Do not call va_arg with an argument of the incorrect type

CERT.VA_ARG.TYPE  正しくない型の引数で va_arg を呼び出さない

CERT EXP50-CPP (L2): Do not depend on the order of evaluation for side effects

CERT.EXPR.PARENS  式内の演算子の優先度は明示的にする必要があります。

MISRA.EXPR.PARENS.INSUFFICIENT  式の演算子優先規則に制限された依存性が必要です

MISRA.INCR_DECR.OTHER  増分または減分の演算子がその他の演算子と混合して式で使用されています

PORTING.VAR.EFFECTS  ある使用法が副次的な影響を受ける式で変数が 2 回使用されています

CERT EXP51-CPP (L3): Do not delete an array through a pointer of the incorrect type

CERT.EXPR.DELETE_ARR.BASE_PTR  不正な型のポインターを使用して配列を削除しないでください

CERT EXP52-CPP (L3): Do not rely on side effects in unevaluated operands

MISRA.SIZEOF.SIDE_EFFECT  sizeof のオペランドに副作用があります

CERT EXP53-CPP (L1): Do not read uninitialized memory

UNINIT.CTOR.MIGHT  コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST  コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

CERT EXP54-CPP (L2): Do not access an object outside of its lifetime

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

LOCRET.ARG  関数がローカル変数のアドレスを返しています

LOCRET.GLOB  関数がローカル変数のアドレスを返しています

LOCRET.RET  関数がローカル変数のアドレスを返しています

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

CERT EXP55-CPP (L3): Do not access a cv-qualified object through a cv-unqualified type

MISRA.CAST.CONST  キャスト演算により const または volatile がポインターまたは参照から除外されます。

CERT EXP56-CPP (L3): Do not call a function with a mismatched language linkage

MISRA.CAST.PTR.UNRELATED  ポインタ型のオブジェクトを関連のない型にキャストしています

MISRA.CAST.PTR_TO_INT  ポインタと整数型間のキャスト

PORTING.CAST.PTR  両方ともポインタでない型といずれかがポインタでない型間のキャスト

PORTING.CAST.PTR.FLTPNT  非浮動小数点型のポインタへの浮動小数点式のポインタのキャスト

PORTING.CAST.PTR.SIZE  サイズに互換性がない可能性がある型への式のキャストの可能性

CERT EXP57-CPP (L3): Do not cast or delete pointers to incomplete classes

CERT.EXPR.DELETE_PTR.INCOMPLETE_TYPE  不完全な型へのポインターを削除しないでください

CERT EXP58-CPP (L3): Pass an object of the correct type to va_start

CERT.VA_START.TYPE  正しい型のオブジェクトを va_start に渡す

CERT EXP60-CPP (L2): Do not pass a nonstandard-layout type object across execution boundaries

CERT.EXPR.PASS_NON_STD_LAYOUT  実行境界を超えて標準ではないレイアウトタイプオブジェクトを渡さないでください

CERT EXP61-CPP (L2): A lamda object must not outlive any of its reference captured objects

LOCRET.RET  関数がローカル変数のアドレスを返しています

CERT EXP62-CPP (L1): Do not access the bits of an object representation that are not part of the object's value representation

CERT.MEMCMP.PADDED_DATA  パディングデータを比較しないでください

CWARN.MEM.NONPOD  非 POD オブジェクトに適用されるメモリ操作ルーチン

CERT FIO30-C (L1): Exclude user input from format strings

SV.FMTSTR.GENERIC  書式文字列の脆弱性

SV.TAINTED.FMTSTR  書式文字列での未検証データの使用

CERT FIO34-C (L1): Distinguish between characters read from a file and EOF or WEOF

CWARN.CMPCHR.EOF  'char' 式と EOF 定数との比較

CERT FIO37-C (L1): Do not assume that fgets() or fgetws() returns a nonempty string when successful

CERT.FIO.FGETS  fgets() または fgetws() が正常に実行された場合に空でない文字列が返されることを想定していない

CERT FIO38-C (L3): Do not copy a FILE object

CERT.FILE_PTR.DEREF  FILE オブジェクトへのポインターは逆参照してはなりません

CERT.FILE_PTR.DEREF.CAST  オブジェクトは FILE ポインターにキャストされており、これを逆参照してはなりません。

CERT.FILE_PTR.DEREF.INDIRECT  FILE オブジェクトへのポインターは、システム関数で間接的に逆参照してはなりません

CERT.FILE_PTR.DEREF.RETURN  FILE オブジェクト(関数の戻り値)へのポインターは逆参照してはなりません

MISRA.FILE_PTR.DEREF.2012  FILE オブジェクトへのポインターは逆参照してはなりません

MISRA.FILE_PTR.DEREF.CAST.2012  オブジェクトは FILE ポインターにキャストされており、これを逆参照してはなりません。

MISRA.FILE_PTR.DEREF.INDIRECT.2012  FILE オブジェクトへのポインターは、システム関数で間接的に逆参照してはなりません

MISRA.FILE_PTR.DEREF.RETURN.2012  FILE オブジェクト(関数の戻り値)へのポインターは逆参照してはなりません

CERT FIO39-C (L2): Do not alternately input and output from a stream without an intervening flush or positioning call

CERT.FIO.NO_FLUSH  フラッシュまたは位置調整の関数呼び出しの欠如

CERT FIO42-C (L3): Close files when they are no longer needed

RH.LEAK  リソースリーク

CERT FIO44-C (L3): Only use values for fsetpos() that are returned from fgetpos()

CERT.FSETPOS.VALUE  fsetpos() に、fgetpos() から返される値のみを使用します

CERT FIO45-C (L2): Avoid TOCTOU race conditions while accessing files

SV.TOCTOU.FILE_ACCESS  ファイル アクセス時の作成日時/使用日時の競合状態

CERT FIO46-C (L3): Do not access a closed file

SV.INCORRECT_RESOURCE_HANDLING.URH  安全でないリソース処理

CERT FIO47-C (L2): Use valid format strings

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  互換性がない print 関数パラメーターの型

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  予期しない print 関数パラメーターの型

SV.FMT_STR.PRINT_IMPROP_LENGTH  print 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  print 関数呼び出しの引数が少なすぎます

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  print 関数呼び出しの引数が多すぎます

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  互換性がない scan 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  予期しない scan 関数パラメーターの型

SV.FMT_STR.SCAN_IMPROP_LENGTH  scan 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  scan 関数呼び出しの引数が少なすぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  scan 関数呼び出しの引数が多すぎます

SV.FMT_STR.UNKWN_FORMAT  print 関数呼び出しの書式指定子が不明です

CERT FIO51-CPP (L3): Close files when they are no longer needed

RH.LEAK  リソースリーク

CERT FLP30-C (L2): Do not use floating-point variables as loop counters

MISRA.FOR.COUNTER.FLT  for ループのカウンターが浮動小数点タイプです

CERT FLP32-C (L1): Prevent or detect domain and range errors in math functions

CERT.MATH.DOMAIN.CHECK  標準ライブラリ数学関数に渡される 1 つ以上の引数が有効なドメイン外にあります

CERT.MATH.RANGE.CHECK  範囲エラーを発生させる可能性のあるライブラリ数学関数の呼び出し後にエラー条件をチェックする必要です

CERT FLP34-C (L3): Ensure that floating-point conversions are within range of the new type

MISRA.CAST.FLOAT.WIDER  より広い浮動小数点タイプへの浮動小数点式のキャスト

MISRA.CAST.FLOAT_INT  整数型への浮動小数点式のキャスト

MISRA.CAST.INT_FLOAT  浮動小数点タイプへの複合式のキャスト

MISRA.CONV.FLOAT  暗黙的な浮動小数点変換です

CERT FLP36-C (L3): Preserve precision when converting integral values to floating-point type

PORTING.CAST.FLTPNT  非浮動小数点タイプへの浮動小数点式のキャスト

CERT FLP37-C (L3): Do not use object representations to compare floating-point values

CERT.MEMCMP.FLOAT_MEMBER  メンバーが浮動小数点の場合、比較しないでください

CERT INT30-C (L2): Ensure that unsigned integer operations do not wrap

CWARN.NOEFFECT.OUTOFRANGE  範囲外の値

NUM.OVERFLOW  オーバーフローの可能性

NUM.OVERFLOW.DF  起こり得る数値のオーバーフローまたはラップアラウンド

CERT INT31-C (L1): Ensure that integer conversions do not result in lost or misinterpreted data

PORTING.CAST.SIZE  サイズが異なる可能性がある型に式がキャストされています

CERT INT32-C (L1): Ensure that operations on signed integers do not result in overflow

CWARN.NOEFFECT.OUTOFRANGE  範囲外の値

NUM.OVERFLOW  オーバーフローの可能性

NUM.OVERFLOW.DF  起こり得る数値のオーバーフローまたはラップアラウンド

CERT INT33-C (L2): Ensure that division and remainder operations do not result in divide-by-zero errors

DBZ.CONST  ゼロ定数による除算が発生しました

DBZ.CONST.CALL  値 '0' が除数としてこの値を使用できる関数に渡されます

DBZ.GENERAL  ゼロ除算が発生した可能性があります

DBZ.GENERAL.FLOAT  浮動小数点数のゼロ除算が発生した可能性があります

DBZ.ITERATOR  ループ反復子でゼロ除算が発生した可能性があります

DBZ.ITERATOR.CALL  関数呼出しでゼロ除算が発生した可能性があります

DBZ.ITERATOR.FLOAT  ループ反復子でゼロ除算が発生した可能性があります

CERT INT34-C (L3): Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand

MISRA.SHIFT.RANGE.2012   シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負

CERT MEM30-C (L2): Do not access freed memory

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

CERT MEM31-C (L3): Free dynamically allocated memory when no longer needed

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

CL.SHALLOW.ASSIGN  解放済みメモリの使用 (二重解放) - 演算子 = での浅いコピー

CL.SHALLOW.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタでの浅いコピー

FMM.MIGHT  メモリの解放の不一致の可能性

FMM.MUST  メモリの解放の不一致

CERT MEM34-C (L2): Only free memory allocated dynamically

FNH.MIGHT  非ヒープメモリの解放の可能性

FNH.MUST  非ヒープメモリの解放

CERT MEM35-C (L2): Allocate sufficient memory for an object

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

SV.TAINTED.ALLOC_SIZE  メモリ割り当て時の未検証の整数の使用

CERT MEM36-C (L3): Do not modify the alignment of objects by calling realloc()

AUTOSAR.STDLIB.MEMORY  関数 malloc、calloc、realloc、および free は使用してはなりません

CERT MEM50-CPP (L2): Do not access freed memory

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

CERT MEM51-CPP (L2): Properly deallocate dynamically allocated resources

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

CL.FMM  メモリの解放の不一致 - デストラクタで発生

CL.SHALLOW.ASSIGN  解放済みメモリの使用 (二重解放) - 演算子 = での浅いコピー

CL.SHALLOW.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタでの浅いコピー

FMM.MIGHT  メモリの解放の不一致の可能性

FMM.MUST  メモリの解放の不一致

FNH.MIGHT  非ヒープメモリの解放の可能性

FNH.MUST  非ヒープメモリの解放

FUM.GEN.MIGHT  未割り当てメモリの解放の可能性

FUM.GEN.MUST  未割り当てメモリの解放

UNINIT.CTOR.MIGHT  コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST  コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

CERT MEM52-CPP (L1): Detect and handle memory allocation errors

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  null ポインターが逆参照されます

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

CERT MEM53-CPP (L2): Explicitly construct and destruct objects when manually managing object lifetime

CERT.MEM.OBJ_LIFETIME_CTOR  初期化されていない heap メンバー関数の呼び出し

CERT.MEM.OBJ_LIFETIME_DTOR  手動で割り当てられたメモリを持つオブジェクトは明示的に破棄されない

CERT MEM54-CPP (L2): Provide placement new with properly aligned pointers to sufficient storage capacity

CERT.MEM.PLACEMENTNEW.MISALIGNED  アライメントが適切なストレージを placement new に提供します

CERT.MEM.PLACEMENTNEW.TOOSMALL  十分なストレージを placement new に提供します。

CERT MEM55-CPP (L2): Honor replacement dynamic storage management requirements

CERT.MEM.OVERRIDE.DELETE  'delete' の動的メモリ管理要件を変更してください

CERT.MEM.OVERRIDE.NEW  'new' の動的メモリ管理要件を変更してください

CERT MEM56-CPP (L2): Do not store an already-owned pointer value in an unrelated smart pointer

CERT.MEM.SMART_PTR.OWNED  複数のスマートポインターでのポインター所有権の共有

CERT.MEM.SMART_PTR.OWNED.THIS  基礎となるリソースが無関係なスマートポインターによって既に所有されている可能性がある

CERT MSC30-C (L3): Do not use the rand() function for generating pseudorandom numbers

CERT.MSC.STD_RAND_CALL  疑似乱数の生成に std::rand() を使用しないでください

CERT MSC32-C (L1): Properly seed pseudorandom number generators

CERT.MSC.SEED_RANDOM  疑似乱数ジェネレータを適切にシードする

CERT MSC33-C (L2): Do not pass invalid data to the asctime() function

CERT.MSC.ASCTIME  asctime() 関数に無効なデータを渡さないでください

CERT MSC37-C (L2): Ensure that control never reaches the end of a non-void function

FUNCRET.GEN  非 void 関数に戻り値がありません

FUNCRET.IMPLICIT  暗黙的に int を返す非 void 関数に戻り値がありません

CERT MSC39-C (L3): Do not call va_arg() on a va_list that has an indeterminate value

VA.LIST.INDETERMINATE  不定値を持つ va_list に対する va_arg() の呼び出し

CERT MSC40-C (L3): Do not violate constraints

MISRA.FUNC.STATIC.REDECL  関数またはオブジェクトの再宣言に 'static' 修飾子がありません

CERT MSC41-C (L2): Never hard code sensitive information

CXX.SV.PWD.PLAIN  プレーンな文字列を使用してパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH  15 文字未満の長さでパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH.ZERO  ゼロ文字の長さでパスワードを設定しようとしています

HCC  ハードコードされた資格情報の使用

HCC.PWD  ハードコードされたパスワードの使用

HCC.USER  ハードコードされたユーザー名の使用

CERT MSC50-CPP (L3): Do not use std::rand() for generating pseudorandom numbers

CERT.MSC.STD_RAND_CALL  疑似乱数の生成に std::rand() を使用しないでください

CERT MSC51-CPP (L1): Ensure your random number generator is properly seeded

AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INIT  乱数エンジンをデフォルトで初期化してはなりません

CERT MSC52-CPP (L2): Value-returning functions must return a value from all exit paths

FUNCRET.GEN  非 void 関数に戻り値がありません

FUNCRET.IMPLICIT  暗黙的に int を返す非 void 関数に戻り値がありません

CERT MSC53-CPP (L3): Do not return from a function declared [[noreturn]]

CERT.MSC.NORETURN_FUNC_RETURNS  [[noreturn]] と宣言された関数から返さないでください

CERT MSC54-CPP (L2): A signal handler must be a plain old function

CERT.MSC.SIG_HANDLER.POF  シグナルハンドラーは古いプレーン関数である必要があります

CERT OOP50-CPP (L3): Do not invoke virtual functions from constructors or destructors

CERT.OOP.CTOR.VIRTUAL_FUNC  コンストラクタまたは、デストラクタから仮想関数を呼出してはならない

CERT OOP52-CPP (L3): Do not delete a polymorphic object without a virtual destructor

CL.MLK.VIRTUAL  メモリリーク - デストラクタで発生している可能性

CWARN.DTOR.NONVIRT.DELETE  仮想メソッドを持ち、仮想デストラクタを持たないクラスのオブジェクトの式を削除しています

CERT OOP53-CPP (L2): Write constructor member initializers in the canonical order

CERT.OOP.CTOR.INIT_ORDER  コンストラクターメンバー初期化子を正規の順序で作成します

CERT OOP54-CPP (L3): Gracefully handle self-copy assignment

CL.SELF-ASSIGN  解放済みメモリの使用 (二重解放) - operator=

CERT OOP55-CPP (L2): Do not use pointer-to-member operators to access nonexistent members

CERT.OOP.PTR_MEMBER.NO_MEMBER  メンバー演算子へのポインターを使用して、存在しないメンバーにアクセスしないでください

CERT OOP57-CPP (L1): Prefer special member functions and overloaded operators to C Standard Library functions

CERT.OOP.CSTD_FUNC_USE  C 標準ライブラリ関数よりも特殊メンバー関数とオーバーロードされた演算子を優先します

CERT OOP58-CPP (L2): Copy operations must not mutate the source object

CERT.OOP.COPY_MUTATES  コピー操作でソースオブジェクトを変更してはいけません

CERT POS30-C (L1): Use the readlink() function properly

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

CERT POS34-C (L2): Do not call putenv() with a pointer to an automatic variable as the argument

CERT.PUTENV.AUTO_VARIABLE  自動変数へのポインターを引数として putenv() を呼び出さないでください

CERT POS35-C (L2): Avoid race conditions while checking for the existence of a symbolic link

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

SV.TOCTOU.FILE_ACCESS  ファイル アクセス時の作成日時/使用日時の競合状態

CERT POS36-C (L1): Observe correct revocation order while relinquishing privileges

SV.USAGERULES.PERMISSIONS  特権の昇給の使用

CERT POS37-C (L1): Ensure that privilege relinquishment is successful

SV.USAGERULES.PERMISSIONS  特権の昇給の使用

CERT POS39-C (L1): Use the correct byte ordering when transferring data between systems

BYTEORDER.HTON.SEND  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.HTON.WRITE  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.READ  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.RECV  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

CERT POS44-C (L3): Do not use signals to terminate threads

MISRA.INCL.SIGNAL.2012  標準ヘッダーファイル signal.h は使用しない

CERT POS47-C (L3): Do not use threads that can be canceled asynchronously

CERT.POS.THREAD.ASYNC_CANCEL  非同期キャンセルが可能なスレッドを使用してはいけません

CERT POS51-C (L3): Avoid deadlock with POSIX threads by locking in predefined order

CONC.DL  デッドロック

CONC.NO_UNLOCK  変数のロック解除の欠落

CERT POS52-C (L3): Do not perform operations that can block while holding a POSIX lock

CONC.SLEEP  クリティカルセクションで関数がブロックされる可能性があります

CERT POS54-C (L1): Detect and handle POSIX library errors

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

CERT PRE30-C (L3): Do not create a universal character name through concatenation

MISRA.DEFINE.SHARP  マクロ定義に # 演算子または ## 演算子が使用されています

CERT PRE31-C (L2): Avoid side effects in arguments to unsafe macros

PORTING.VAR.EFFECTS  ある使用法が副次的な影響を受ける式で変数が 2 回使用されています

CERT PRE32-C (L3): Do not use preprocessor directives in invocations of function-like macros

MISRA.EXPANSION.DIRECTIVE  マクロの引数内にディレクティブのようなトークンがあります

CERT SIG31-C (L1): Do not access shared objects in signal handlers

CERT.SIG.SIG_HANDLER.SHARED_OBJ  シグナルハンドラー内で共有オブジェクトにアクセスしないでください

CERT.SIG.SIG_HANDLER.SHARED_OBJ.HEAP  シグナルハンドラー内で共有オブジェクトにアクセスしないでください

CERT.SIG.SIG_HANDLER.SHARED_OBJ.MIGHT  シグナルハンドラー内で共有オブジェクトにアクセスしないでください

CERT SIG34-C (L3): Do not call signal() from within interruptible signal handlers

MISRA.STDLIB.SIGNAL  signal.h の信号処理装置の使用

CERT SIG35-C (L3): Do not return from a computational exception signal handler

CERT.STDLIB.SIGNAL  計算例外シグナルハンドラーから戻らない

CERT STR30-C (L2): Do not attempt to modify string literals

CERT.STR.ARG.CONST_TO_NONCONST  const char ポインターを非 const char ポインター引数に渡さないでください

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

CERT STR31-C (L2): Guarantee that storage for strings has sufficient space for character data and the null terminator

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

CERT STR32-C (L1): Do not pass a non-null-terminated character sequence to a library function that expects a string

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

SV.STRBO.BOUND_COPY.UNTERM  次の文字列演算でバッファオーバーフローの可能性があります

CERT STR34-C (L2): Cast characters to unsigned char before converting to larger integer sizes

CXX.CAST.SIGNED_CHAR_TO_INTEGER  より大きな整数サイズに変換する前に char を unsigned char にキャストします

CERT STR37-C (L3): Arguments to character-handling functions must be representable as an unsigned char

AUTOSAR.STDLIB.CCTYPE.UCHAR  <cctype> で定義される文字処理関数の引数は、unsigned char として表現できなければなりません

CERT STR38-C (L1): Do not confuse narrow and wide character strings and functions

CXX.DIFF.WIDTH.STR_AND_FUNC  関数の呼び出し時にナロー文字列とワイド文字列の間で暗黙のキャストが行われます

CERT STR50-CPP (L2): Guarantee that storage for strings has sufficient space for character data and the null terminator

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

CERT STR51-CPP (L1): Do not attempt to create a std::string from a null pointer

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  null ポインターが逆参照されます

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

CON33-C(L3)

CERT.CONC.LIB_FUNC_USE  ライブラリ関数の使用時には競合状態を避けてください

CON37-C(L3)

MISRA.STDLIB.SIGNAL  signal.h の信号処理装置の使用

CON40-C(L2)

CERT.CONC.ATOMIC_TWICE_EXPR  1 つの式でアトミック変数を 2 回参照しないでください

CON41-C(L3)

CERT.CONC.ATOMIC_COMP_FAIL_IN_LOOP  ループで疑似的に失敗する可能性のある関数はラップしてください

CON50-CPP(L3)

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  ロックされている間はミューテックスを破棄しないでください

CON54-CPP(L3)

CERT.CONC.WAKE_IN_LOOP  擬似的にループを起動する可能性のあるラップ関数

CON55-CPP(L3)

CERT.CONC.UNSAFE_COND_VAR  条件変数の使用時に、スレッドセーフと活性を維持します

CTR50-CPP(L2)

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

SV.TAINTED.ALLOC_SIZE  メモリ割り当て時の未検証の整数の使用

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.CALL.LOOP_BOUND  関数呼び出しのループ条件での未検証の整数の使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

CTR51-CPP(L2)

ITER.CONTAINER.MODIFIED  無効な反復子の使用

CTR52-CPP(L1)

ITER.END.OUTPARAM.MIGHT  出力反復子としての 'end' の使用

ITER.END.OUTPARAM.MUST  出力反復子としての 'end' の使用

CTR55-CPP(L2)

ITER.ADVANCE.NONADJACENT  反復子間の距離は 1 より大きい値にする

DCL30-C(L2)

LOCRET.ARG  関数がローカル変数のアドレスを返しています

LOCRET.GLOB  関数がローカル変数のアドレスを返しています

LOCRET.RET  関数がローカル変数のアドレスを返しています

DCL39-C(L3)

PORTING.STORAGE.STRUCT  構造の要素のバイト位置が配置属性およびパッケージ属性に依存している可能性があります。

DCL40-C(L3)

MISRA.FUNC.PARAMS.IDENT  関数の宣言と定義で使用される識別子が一致していません

DCL50-CPP(L1)

MISRA.FUNC.VARARG  関数が可変数の引数を持っています

DCL51-CPP(L3)

MISRA.DEFINE.WRONGNAME  標準ライブラリからの名前がマクロ名に使用されています

MISRA.DEFINE.WRONGNAME.UNDERSCORE  予約名がマクロ名に使用されています

MISRA.STDLIB.WRONGNAME  標準ライブラリのマクロ、オブジェクトまたは関数の名前が再使用されています

MISRA.STDLIB.WRONGNAME.UNDERSCORE  予約名が言語エンティティの名前に使用されています

MISRA.UNDEF.WRONGNAME  標準ライブラリからの名前が定義されていません

MISRA.UNDEF.WRONGNAME.UNDERSCORE  予約名が定義されていません

DCL52-CPP(L3)

CERT.DCL.REF_TYPE.CONST_OR_VOLATILE  参照型を const または volatile で修飾しないでください

DCL53-CPP(L3)

CERT.DCL.AMBIGUOUS_DECL  構文的に曖昧な宣言を作成しないでください

DCL54-CPP(L3)

CERT.DCL.SAME_SCOPE_ALLOC_DEALLOC  同一のスコープ内のペアとしての割り当ておよび割り当て解除関数をオーバーロードします

DCL57-CPP(L2)

MISRA.DTOR.THROW  デストラクタにスローします

DCL58-CPP(L2)

CERT.DCL.STD_NS_MODIFIED  標準名前空間を変更しないでください

DCL59-CPP(L3)

MISRA.NAMESPACE.UNMD  ヘッダーファイルに名前のない名前空間があります

ENV30-C(L3)

CXX.STDLIB.ILLEGAL_WRITE  標準ライブラリ関数 localeconv、getenv、setlocale、または strerror が返すポインターは、必ずそれらが const-qualified 型を指すポインターを持つかのように使用する必要があります。

ENV32-C(L1)

CERT.EXIT.HANDLER_TERMINATE  すべての exit ハンドラーは正常に戻る必要があります

ENV33-C(L1)

SV.CODE_INJECTION.SHELL_EXEC  シェル実行へのコマンドインジェクション

ENV34-C(L3)

CXX.STDLIB.ILLEGAL_REUSE  標準ライブラリ関数 asctime または同様の関数によって返されるポインタは、同じ関数の後続の呼び出しに続いては使用しません

ERR30-C(L1)

CXX.ERRNO.INCORRECTLY_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックは必要ない

CXX.ERRNO.NOT_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックが欠落している

CXX.ERRNO.NOT_SET  ライブラリ関数を呼び出す前に、errno はゼロにリセットされていない

ERR32-C(L3)

MISRA.INCL.SIGNAL.2012  標準ヘッダーファイル signal.h は使用しない

MISRA.STDLIB.SIGNAL  signal.h の信号処理装置の使用

ERR33-C(L1)

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

ERR34-C(L2)

CERT.ERR.CONV.STR_TO_NUM  文字列を数値に変換する際にエラーを検出する

MISRA.STDLIB.ATOI  ライブラリ stdlib.h から 'atof'、'atoi' または 'atol' が使用されています

SV.BANNED.RECOMMENDED.SCANF  禁止が推奨されているAPI: 安全でない scanf 型関数

ERR50-CPP(L3)

CERT.ERR.ABRUPT_TERM  突然プログラムを終了しないでください

MISRA.TERMINATE  terminate() 関数が明示的に呼び出されています

ERR51-CPP(L2)

MISRA.CATCH.ALL  try-catch ブロックに省略記号例外ハンドラーがありません

ERR52-CPP(L3)

MISRA.STDLIB.LONGJMP  setjmp マクロまたは longjmp 関数の使用

ERR53-CPP(L3)

MISRA.CTOR.TRY.NON_STATIC  コンストラクタまたはデストラクタの関数 try-catch ブロックが非スタティックなメンバーを参照しています

ERR54-CPP(L1)

MISRA.CATCH.NOALL  省略記号例外ハンドラーが try-catch ブロックの最後に置かれていません

MISRA.CATCH.WRONGORD  try-catch ブロックで基本例外クラスのハンドラーが派生例外クラスのハンドラーよりも先に置かれています

ERR57-CPP(L3)

CL.MLK  メモリリーク - デストラクタで発生

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

RH.LEAK  リソースリーク

ERR59-CPP(L2)

CERT.EXCEPTION.OVER.BOUNDARY  実行境界を越えてスローされた例外

ERR61-CPP(L3)

MISRA.CATCH.BY_VALUE  クラス タイプの例外オブジェクトが値によってキャッチされています

ERR62-CPP(L3)

CERT.ERR.CONV.STR_TO_NUM  文字列を数値に変換する際にエラーを検出する

EXP34-C(L1)

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  null ポインターが逆参照されます

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

EXP39-C(L3)

CXX.CAST.OBJ_PTR_TO_OBJ_PTR   オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト

EXP42-C(L1)

CERT.MEMCMP.PADDED_DATA  パディングデータを比較しないでください

EXP45-C(L2)

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

MISRA.ASSIGN.COND  条件内で代入演算子が使用されています

EXP46-C(L2)

MISRA.LOGIC.OPERATOR.NOT_BOOL  論理演算ではない演算子のオペランドが実質的にはブール値です

EXP47-C(L2)

CERT.VA_ARG.TYPE  正しくない型の引数で va_arg を呼び出さない

EXP50-CPP(L2)

CERT.EXPR.PARENS  式内の演算子の優先度は明示的にする必要があります。

MISRA.EXPR.PARENS.INSUFFICIENT  式の演算子優先規則に制限された依存性が必要です

MISRA.INCR_DECR.OTHER  増分または減分の演算子がその他の演算子と混合して式で使用されています

PORTING.VAR.EFFECTS  ある使用法が副次的な影響を受ける式で変数が 2 回使用されています

EXP51-CPP(L3)

CERT.EXPR.DELETE_ARR.BASE_PTR  不正な型のポインターを使用して配列を削除しないでください

EXP52-CPP(L3)

MISRA.SIZEOF.SIDE_EFFECT  sizeof のオペランドに副作用があります

EXP53-CPP(L1)

UNINIT.CTOR.MIGHT  コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST  コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

EXP54-CPP(L2)

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

LOCRET.ARG  関数がローカル変数のアドレスを返しています

LOCRET.GLOB  関数がローカル変数のアドレスを返しています

LOCRET.RET  関数がローカル変数のアドレスを返しています

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

EXP55-CPP(L3)

MISRA.CAST.CONST  キャスト演算により const または volatile がポインターまたは参照から除外されます。

EXP56-CPP(L3)

MISRA.CAST.PTR.UNRELATED  ポインタ型のオブジェクトを関連のない型にキャストしています

MISRA.CAST.PTR_TO_INT  ポインタと整数型間のキャスト

PORTING.CAST.PTR  両方ともポインタでない型といずれかがポインタでない型間のキャスト

PORTING.CAST.PTR.FLTPNT  非浮動小数点型のポインタへの浮動小数点式のポインタのキャスト

PORTING.CAST.PTR.SIZE  サイズに互換性がない可能性がある型への式のキャストの可能性

EXP57-CPP(L3)

CERT.EXPR.DELETE_PTR.INCOMPLETE_TYPE  不完全な型へのポインターを削除しないでください

EXP58-CPP(L3)

CERT.VA_START.TYPE  正しい型のオブジェクトを va_start に渡す

EXP60-CPP(L2)

CERT.EXPR.PASS_NON_STD_LAYOUT  実行境界を超えて標準ではないレイアウトタイプオブジェクトを渡さないでください

EXP61-CPP(L2)

LOCRET.RET  関数がローカル変数のアドレスを返しています

EXP62-CPP(L1)

CERT.MEMCMP.PADDED_DATA  パディングデータを比較しないでください

CWARN.MEM.NONPOD  非 POD オブジェクトに適用されるメモリ操作ルーチン

FIO30-C(L1)

SV.FMTSTR.GENERIC  書式文字列の脆弱性

SV.TAINTED.FMTSTR  書式文字列での未検証データの使用

FIO34-C(L1)

CWARN.CMPCHR.EOF  'char' 式と EOF 定数との比較

FIO37-C(L1)

CERT.FIO.FGETS  fgets() または fgetws() が正常に実行された場合に空でない文字列が返されることを想定していない

FIO38-C(L3)

CERT.FILE_PTR.DEREF  FILE オブジェクトへのポインターは逆参照してはなりません

CERT.FILE_PTR.DEREF.CAST  オブジェクトは FILE ポインターにキャストされており、これを逆参照してはなりません。

CERT.FILE_PTR.DEREF.INDIRECT  FILE オブジェクトへのポインターは、システム関数で間接的に逆参照してはなりません

CERT.FILE_PTR.DEREF.RETURN  FILE オブジェクト(関数の戻り値)へのポインターは逆参照してはなりません

MISRA.FILE_PTR.DEREF.2012  FILE オブジェクトへのポインターは逆参照してはなりません

MISRA.FILE_PTR.DEREF.CAST.2012  オブジェクトは FILE ポインターにキャストされており、これを逆参照してはなりません。

MISRA.FILE_PTR.DEREF.INDIRECT.2012  FILE オブジェクトへのポインターは、システム関数で間接的に逆参照してはなりません

MISRA.FILE_PTR.DEREF.RETURN.2012  FILE オブジェクト(関数の戻り値)へのポインターは逆参照してはなりません

FIO39-C(L2)

CERT.FIO.NO_FLUSH  フラッシュまたは位置調整の関数呼び出しの欠如

FIO42-C(L3)

RH.LEAK  リソースリーク

FIO44-C(L3)

CERT.FSETPOS.VALUE  fsetpos() に、fgetpos() から返される値のみを使用します

FIO45-C(L2)

SV.TOCTOU.FILE_ACCESS  ファイル アクセス時の作成日時/使用日時の競合状態

FIO46-C(L3)

SV.INCORRECT_RESOURCE_HANDLING.URH  安全でないリソース処理

FIO47-C(L2)

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  互換性がない print 関数パラメーターの型

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  予期しない print 関数パラメーターの型

SV.FMT_STR.PRINT_IMPROP_LENGTH  print 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  print 関数呼び出しの引数が少なすぎます

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  print 関数呼び出しの引数が多すぎます

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  互換性がない scan 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  予期しない scan 関数パラメーターの型

SV.FMT_STR.SCAN_IMPROP_LENGTH  scan 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  scan 関数呼び出しの引数が少なすぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  scan 関数呼び出しの引数が多すぎます

SV.FMT_STR.UNKWN_FORMAT  print 関数呼び出しの書式指定子が不明です

FIO51-CPP(L3)

RH.LEAK  リソースリーク

FLP30-C(L2)

MISRA.FOR.COUNTER.FLT  for ループのカウンターが浮動小数点タイプです

FLP32-C(L1)

CERT.MATH.DOMAIN.CHECK  標準ライブラリ数学関数に渡される 1 つ以上の引数が有効なドメイン外にあります

CERT.MATH.RANGE.CHECK  範囲エラーを発生させる可能性のあるライブラリ数学関数の呼び出し後にエラー条件をチェックする必要です

FLP34-C(L3)

MISRA.CAST.FLOAT.WIDER  より広い浮動小数点タイプへの浮動小数点式のキャスト

MISRA.CAST.FLOAT_INT  整数型への浮動小数点式のキャスト

MISRA.CAST.INT_FLOAT  浮動小数点タイプへの複合式のキャスト

MISRA.CONV.FLOAT  暗黙的な浮動小数点変換です

FLP36-C(L3)

PORTING.CAST.FLTPNT  非浮動小数点タイプへの浮動小数点式のキャスト

FLP37-C(L3)

CERT.MEMCMP.FLOAT_MEMBER  メンバーが浮動小数点の場合、比較しないでください

INT30-C(L2)

CWARN.NOEFFECT.OUTOFRANGE  範囲外の値

NUM.OVERFLOW  オーバーフローの可能性

NUM.OVERFLOW.DF  起こり得る数値のオーバーフローまたはラップアラウンド

INT31-C(L1)

PORTING.CAST.SIZE  サイズが異なる可能性がある型に式がキャストされています

INT32-C(L1)

CWARN.NOEFFECT.OUTOFRANGE  範囲外の値

NUM.OVERFLOW  オーバーフローの可能性

NUM.OVERFLOW.DF  起こり得る数値のオーバーフローまたはラップアラウンド

INT33-C(L2)

DBZ.CONST  ゼロ定数による除算が発生しました

DBZ.CONST.CALL  値 '0' が除数としてこの値を使用できる関数に渡されます

DBZ.GENERAL  ゼロ除算が発生した可能性があります

DBZ.GENERAL.FLOAT  浮動小数点数のゼロ除算が発生した可能性があります

DBZ.ITERATOR  ループ反復子でゼロ除算が発生した可能性があります

DBZ.ITERATOR.CALL  関数呼出しでゼロ除算が発生した可能性があります

DBZ.ITERATOR.FLOAT  ループ反復子でゼロ除算が発生した可能性があります

INT34-C(L3)

MISRA.SHIFT.RANGE.2012   シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負

MEM30-C(L2)

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

MEM31-C(L3)

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

CL.SHALLOW.ASSIGN  解放済みメモリの使用 (二重解放) - 演算子 = での浅いコピー

CL.SHALLOW.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタでの浅いコピー

FMM.MIGHT  メモリの解放の不一致の可能性

FMM.MUST  メモリの解放の不一致

MEM34-C(L2)

FNH.MIGHT  非ヒープメモリの解放の可能性

FNH.MUST  非ヒープメモリの解放

MEM35-C(L2)

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

SV.TAINTED.ALLOC_SIZE  メモリ割り当て時の未検証の整数の使用

MEM36-C(L3)

AUTOSAR.STDLIB.MEMORY  関数 malloc、calloc、realloc、および free は使用してはなりません

MEM50-CPP(L2)

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

MEM51-CPP(L2)

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

CL.FMM  メモリの解放の不一致 - デストラクタで発生

CL.SHALLOW.ASSIGN  解放済みメモリの使用 (二重解放) - 演算子 = での浅いコピー

CL.SHALLOW.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタでの浅いコピー

FMM.MIGHT  メモリの解放の不一致の可能性

FMM.MUST  メモリの解放の不一致

FNH.MIGHT  非ヒープメモリの解放の可能性

FNH.MUST  非ヒープメモリの解放

FUM.GEN.MIGHT  未割り当てメモリの解放の可能性

FUM.GEN.MUST  未割り当てメモリの解放

UNINIT.CTOR.MIGHT  コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST  コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

MEM52-CPP(L1)

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  null ポインターが逆参照されます

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

MEM53-CPP(L2)

CERT.MEM.OBJ_LIFETIME_CTOR  初期化されていない heap メンバー関数の呼び出し

CERT.MEM.OBJ_LIFETIME_DTOR  手動で割り当てられたメモリを持つオブジェクトは明示的に破棄されない

MEM54-CPP(L2)

CERT.MEM.PLACEMENTNEW.MISALIGNED  アライメントが適切なストレージを placement new に提供します

CERT.MEM.PLACEMENTNEW.TOOSMALL  十分なストレージを placement new に提供します。

MEM55-CPP(L2)

CERT.MEM.OVERRIDE.DELETE  'delete' の動的メモリ管理要件を変更してください

CERT.MEM.OVERRIDE.NEW  'new' の動的メモリ管理要件を変更してください

MEM56-CPP(L2)

CERT.MEM.SMART_PTR.OWNED  複数のスマートポインターでのポインター所有権の共有

CERT.MEM.SMART_PTR.OWNED.THIS  基礎となるリソースが無関係なスマートポインターによって既に所有されている可能性がある

MSC30-C(L3)

CERT.MSC.STD_RAND_CALL  疑似乱数の生成に std::rand() を使用しないでください

MSC32-C(L1)

CERT.MSC.SEED_RANDOM  疑似乱数ジェネレータを適切にシードする

MSC33-C(L2)

CERT.MSC.ASCTIME  asctime() 関数に無効なデータを渡さないでください

MSC37-C(L2)

FUNCRET.GEN  非 void 関数に戻り値がありません

FUNCRET.IMPLICIT  暗黙的に int を返す非 void 関数に戻り値がありません

MSC39-C(L3)

VA.LIST.INDETERMINATE  不定値を持つ va_list に対する va_arg() の呼び出し

MSC40-C(L3)

MISRA.FUNC.STATIC.REDECL  関数またはオブジェクトの再宣言に 'static' 修飾子がありません

MSC41-C(L2)

CXX.SV.PWD.PLAIN  プレーンな文字列を使用してパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH  15 文字未満の長さでパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH.ZERO  ゼロ文字の長さでパスワードを設定しようとしています

HCC  ハードコードされた資格情報の使用

HCC.PWD  ハードコードされたパスワードの使用

HCC.USER  ハードコードされたユーザー名の使用

MSC50-CPP(L3)

CERT.MSC.STD_RAND_CALL  疑似乱数の生成に std::rand() を使用しないでください

MSC51-CPP(L1)

AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INIT  乱数エンジンをデフォルトで初期化してはなりません

MSC52-CPP(L2)

FUNCRET.GEN  非 void 関数に戻り値がありません

FUNCRET.IMPLICIT  暗黙的に int を返す非 void 関数に戻り値がありません

MSC53-CPP(L3)

CERT.MSC.NORETURN_FUNC_RETURNS  [[noreturn]] と宣言された関数から返さないでください

MSC54-CPP(L2)

CERT.MSC.SIG_HANDLER.POF  シグナルハンドラーは古いプレーン関数である必要があります

OOP50-CPP(L3)

CERT.OOP.CTOR.VIRTUAL_FUNC  コンストラクタまたは、デストラクタから仮想関数を呼出してはならない

OOP52-CPP(L3)

CL.MLK.VIRTUAL  メモリリーク - デストラクタで発生している可能性

CWARN.DTOR.NONVIRT.DELETE  仮想メソッドを持ち、仮想デストラクタを持たないクラスのオブジェクトの式を削除しています

OOP53-CPP(L2)

CERT.OOP.CTOR.INIT_ORDER  コンストラクターメンバー初期化子を正規の順序で作成します

OOP54-CPP(L3)

CL.SELF-ASSIGN  解放済みメモリの使用 (二重解放) - operator=

OOP55-CPP(L2)

CERT.OOP.PTR_MEMBER.NO_MEMBER  メンバー演算子へのポインターを使用して、存在しないメンバーにアクセスしないでください

OOP57-CPP(L1)

CERT.OOP.CSTD_FUNC_USE  C 標準ライブラリ関数よりも特殊メンバー関数とオーバーロードされた演算子を優先します

OOP58-CPP(L2)

CERT.OOP.COPY_MUTATES  コピー操作でソースオブジェクトを変更してはいけません

POS30-C(L1)

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

POS34-C(L2)

CERT.PUTENV.AUTO_VARIABLE  自動変数へのポインターを引数として putenv() を呼び出さないでください

POS35-C(L2)

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

SV.TOCTOU.FILE_ACCESS  ファイル アクセス時の作成日時/使用日時の競合状態

POS36-C(L1)

SV.USAGERULES.PERMISSIONS  特権の昇給の使用

POS37-C(L1)

SV.USAGERULES.PERMISSIONS  特権の昇給の使用

POS39-C(L1)

BYTEORDER.HTON.SEND  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.HTON.WRITE  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.READ  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.RECV  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

POS44-C(L3)

MISRA.INCL.SIGNAL.2012  標準ヘッダーファイル signal.h は使用しない

POS47-C(L3)

CERT.POS.THREAD.ASYNC_CANCEL  非同期キャンセルが可能なスレッドを使用してはいけません

POS51-C(L3)

CONC.DL  デッドロック

CONC.NO_UNLOCK  変数のロック解除の欠落

POS52-C(L3)

CONC.SLEEP  クリティカルセクションで関数がブロックされる可能性があります

POS54-C(L1)

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

PRE30-C(L3)

MISRA.DEFINE.SHARP  マクロ定義に # 演算子または ## 演算子が使用されています

PRE31-C(L2)

PORTING.VAR.EFFECTS  ある使用法が副次的な影響を受ける式で変数が 2 回使用されています

PRE32-C(L3)

MISRA.EXPANSION.DIRECTIVE  マクロの引数内にディレクティブのようなトークンがあります

SIG31-C(L1)

CERT.SIG.SIG_HANDLER.SHARED_OBJ  シグナルハンドラー内で共有オブジェクトにアクセスしないでください

CERT.SIG.SIG_HANDLER.SHARED_OBJ.HEAP  シグナルハンドラー内で共有オブジェクトにアクセスしないでください

CERT.SIG.SIG_HANDLER.SHARED_OBJ.MIGHT  シグナルハンドラー内で共有オブジェクトにアクセスしないでください

SIG34-C(L3)

MISRA.STDLIB.SIGNAL  signal.h の信号処理装置の使用

SIG35-C(L3)

CERT.STDLIB.SIGNAL  計算例外シグナルハンドラーから戻らない

STR30-C(L2)

CERT.STR.ARG.CONST_TO_NONCONST  const char ポインターを非 const char ポインター引数に渡さないでください

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

STR31-C(L2)

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

STR32-C(L1)

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

SV.STRBO.BOUND_COPY.UNTERM  次の文字列演算でバッファオーバーフローの可能性があります

STR34-C(L2)

CXX.CAST.SIGNED_CHAR_TO_INTEGER  より大きな整数サイズに変換する前に char を unsigned char にキャストします

STR37-C(L3)

AUTOSAR.STDLIB.CCTYPE.UCHAR  <cctype> で定義される文字処理関数の引数は、unsigned char として表現できなければなりません

STR38-C(L1)

CXX.DIFF.WIDTH.STR_AND_FUNC  関数の呼び出し時にナロー文字列とワイド文字列の間で暗黙のキャストが行われます

STR50-CPP(L2)

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

STR51-CPP(L1)

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  null ポインターが逆参照されます

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

and check errno only after the function returns a value indicating failure

CXX.ERRNO.INCORRECTLY_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックは必要ない

CXX.ERRNO.NOT_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックが欠落している

CXX.ERRNO.NOT_SET  ライブラリ関数を呼び出す前に、errno はゼロにリセットされていない

and iterators to reference elements of a container

ITER.CONTAINER.MODIFIED  無効な反復子の使用

pointers

ITER.CONTAINER.MODIFIED  無効な反復子の使用