EN JP CN

CERT C および C++ のセキュア コーディング基準 ID とKlocwork C および C++ チェッカーのマッピング

CERT C および C++ のセキュア コーディング基準 ID とKlocwork C および C++ チェッカーのマッピング

C および C++ チェッカー リファレンスも参照してください。

ルールKlocwork チェッカー コードと説明
ARR00-C

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

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

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

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

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 終了文字列

SV.STRBO.BOUND_COPY.OVERFLOW  バインドされた文字列コピーでのバッファオーバーフロー

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

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

SV.STRBO.UNBOUND_COPY  バインドされていない文字列コピーでのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

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

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

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

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

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

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

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

ARR30-C

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

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

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 終了文字列

SV.STRBO.BOUND_COPY.OVERFLOW  バインドされた文字列コピーでのバッファオーバーフロー

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

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

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

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

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

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

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

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

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

CON02-CPP

CONC.DL  デッドロック

CON05-C

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

CON35-C

CONC.DL  デッドロック

CTR01-CPP

CWARN.MEMSET.SIZEOF.PTR  ポインタに適用される 'sizeof' には、memset のような関数が呼び出されます

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

CTR50-CPP

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

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

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

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

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

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

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

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

DCL01-CPP

MISRA.VAR.HIDDEN 内部のスコープで宣言された識別子によって外部のスコープの識別子が非表示になっています

DCL07-CPP

MISRA.VAR.MIN.VIS 名前は一つの関数でしか使用されていません。

DCL10-CPP

MISRA.BIN_OP.OVERLOAD カンマ、|| または && 演算子が多重定義されています

MISRA.UN_OP.OVERLOAD 単項の & 演算子が多重定義されています

DCL11-C

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

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.UNKWN_FORMAT.SCAN  scan 関数呼び出しの書式指定子が不明です

DCL12-CPP

MISRA.SPEC.ILL テンプレートの明示的なインスタンス化により、コードの形式が損なわれます

DCL18-C

MISRA.TOKEN.OCTAL.ESCAPE 8 進数のエスケープ文字列の使用

MISRA.TOKEN.OCTAL.INT 8 進数の整数定数を使用しています

DCL19-CPP

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  未初期化の変数

DCL20-C

MISRA.FUNC.NO_PARAMS パラメーターのない関数に void パラメータータイプがありません

DCL30-C

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

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

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

DCL31-C

CWARN.IMPLICITINT  古い用法の 'implicit int'

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

MISRA.DECL.NO_TYPE 宣言から型が抜けています

MISRA.FUNC.NOPROT.CALL 関数が呼び出されていますが、プロトタイプがありません

RETVOID.IMPLICIT  暗黙的な int 関数によって void 値が返されます

DCL39-C

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

PORTING.STRUCT.BOOL  構造/クラスにはブールメンバーが含まれています

ENV02-CPP

MISRA.STDLIB.ABORT ライブラリ stdlib.h から 'abort'、'exit'、'getenv' または 'system' が使用されています

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

SV.TAINTED.INJECTION  コマンドインジェクション

ENV33-C

MISRA.STDLIB.ABORT ライブラリ stdlib.h から 'abort'、'exit'、'getenv' または 'system' が使用されています

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

SV.TAINTED.INJECTION  コマンドインジェクション

ERR01-CPP

MISRA.STDLIB.ERRNO エラーインジケーター 'errno' が使用されています

ERR08-CPP

MISRA.THROW.PTR 例外オブジェクトがポインタになっています

ERR09-CPP

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

MISRA.THROW.PTR 例外オブジェクトがポインタになっています

ERR10-CPP

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

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

ERR50-CPP

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

ERR52-CPP

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

ERR53-CPP

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

ERR54-CPP

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

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

EXP00-CPP

MISRA.EXPR.PARENS 

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

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

EXP01-CPP

CWARN.MEMSET.SIZEOF.PTR  ポインタに適用される 'sizeof' には、memset のような関数が呼び出されます

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

EXP02-C

MISRA.LOGIC.SIDEEFF 論理 'and' 式または論理 'or' 式の右側のオペランドは副作用があります

EXP05-CPP

BSTR.CAST.C  C スタイルの型が BSTR にキャストされます

MISRA.C_CAST 非 void タイプへの C スタイルのキャストです

EXP06-CPP

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

EXP08-CPP

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

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

MISRA.PTR.ARITH 代数式または配列インデックス式でポインタが使用されています

EXP09-CPP

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

EXP10-CPP

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

EXP11-CPP

PORTING.BITFIELDS  構造内でのビットフィールドの使用法

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

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

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

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

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

EXP12-C

MISRA.FUNC.UNUSEDRET 非 void 関数の戻り値が使用されていません

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

EXP12-CPP

MISRA.FUNC.UNUSEDRET 非 void 関数の戻り値が使用されていません

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

EXP15-C

SEMICOL  セミコロンの位置を確認してください

EXP15-CPP

MISRA.CAST.UNSIGNED_BITS unsigned char または short でのビット演算の結果は元の型にキャストできません

EXP16-C

CWARN.NULLCHECK.FUNCNAME  関数アドレスが 0 と直接比較されます

EXP19-C

MISRA.IF.NO_COMPOUND if/else ステートメントのボディが複合ステートメントではありません

MISRA.STMT.NO_COMPOUND switch、while、do/while または for ステートメントのボディが複合ステートメントではありません

EXP33-C

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  未初期化の変数

EXP34-C

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 チェック前のポインタの逆参照は問題となる可能性があります

EXP34-CPP

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 チェック前のポインタの逆参照は問題となる可能性があります

EXP45-C

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

ASSIGCOND.GEN  割り当て条件

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

EXP50-CPP

MISRA.EXPR.PARENS 

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

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

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

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

EXP53-CPP

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

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

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

EXP56-CPP

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

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

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

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

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

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

FIO00-CPP

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.UNKWN_FORMAT  print 関数呼び出しの書式指定子が不明です

FIO01-C

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

FIO01-CPP

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

FIO02-C

SV.DLLPRELOAD.NONABSOLUTE.DLL  DLL プリロードのハイジャック ベクターの可能性

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

FIO02-CPP

SV.DLLPRELOAD.NONABSOLUTE.DLL  DLL プリロードのハイジャック ベクターの可能性

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

FIO04-CPP

MISRA.FUNC.UNUSEDRET 非 void 関数の戻り値が使用されていません

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

FIO17-CPP

MISRA.INCL.UNSAFE 安全でないヘッダーのインクルード

MISRA.STDLIB.STDIO プロダクションコードで入力/出力ライブラリ stdio.h が使用されています

FIO22-C

RH.LEAK  リソースリーク

FIO30-C

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

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

FIO47-C

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

RH.LEAK  リソースリーク

INT02-C

MISRA.CAST.INT 自明ではない整数式が広い型または別の符号を持つ型にキャストされています

MISRA.CAST.UNSIGNED_BITS unsigned char または short でのビット演算の結果は元の型にキャストできません

MISRA.CONV.INT.SIGN 暗黙的な整数変換により符号が変わります

MISRA.CVALUE.IMPL.CAST 暗黙の型変換で符号、型サイズ、型の違いにより情報の損失を起こす記述があります。

MISRA.UMINUS.UNSIGNED 単項マイナス演算子が符号なしオペランドに対して使用されています。

PRECISION.LOSS  精度の損失

INT02-CPP

MISRA.CAST.INT 自明ではない整数式が広い型または別の符号を持つ型にキャストされています

MISRA.CAST.UNSIGNED_BITS unsigned char または short でのビット演算の結果は元の型にキャストできません

MISRA.CONV.INT.SIGN 暗黙的な整数変換により符号が変わります

MISRA.CVALUE.IMPL.CAST 暗黙の型変換で符号、型サイズ、型の違いにより情報の損失を起こす記述があります。

MISRA.UMINUS.UNSIGNED 単項マイナス演算子が符号なしオペランドに対して使用されています。

PRECISION.LOSS  精度の損失

INT04-CPP

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

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

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

SV.STRBO.UNBOUND_COPY  バインドされていない文字列コピーでのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

INT05-CPP

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

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

SV.TAINTED.BINOP  バイナリ演算での未検証整数値の使用

SV.TAINTED.CALL.BINOP  バイナリ演算での未検証整数値の使用

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

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

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

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

INT06-CPP

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

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

INT07-CPP

MISRA.CHAR.NOT_CHARACTER 文字でない値に 'char' が使用されています

MISRA.SIGNED_CHAR.NOT_NUMERIC 数値でない値に 'signed char' または 'unsigned char' が使用されています

PORTING.UNSIGNEDCHAR.OVERFLOW.FALSE  'char' 型の符号によっては関係式が常に false になる場合があります

INT11-CPP

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

INT12-CPP

MISRA.BITFIELD.TYPE ビットフィールドのタイプは、符号付き/符号なし整数のいずれでもありません

INT13-CPP

MISRA.BITS.NOT_UNSIGNED ビット演算のオペランドが符号なし整数ではありません

MISRA.BITS.NOT_UNSIGNED.PREP 

MEM00-C

FREE.INCONSISTENT  メモリの解放が矛盾しています

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

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

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

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

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

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

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

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

MEM00-CPP

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

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

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

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

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

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

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

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

MEM01-CPP

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

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

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

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

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

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

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

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

MEM05-CPP

MISRA.FUNC.RECUR 再帰関数

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

MEM09-CPP

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

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

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

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

MEM30-C

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

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

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

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

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

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

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

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

MEM30-CPP

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

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

MLK.MUST  メモリリーク

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

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

MEM34-C

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

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

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

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

MSC01-C

CWARN.EMPTY.LABEL  ラベルステートメントが空です

LA_UNUSED  ラベルが使用されていません

MISRA.IF.NO_ELSE if/else-if ステートメントのチェインが else で終了していないか、または空の else 句で終了しています

MISRA.SWITCH.NODEFAULT switch ステートメントの最後に default 句がありません

MSC01-CPP

CWARN.EMPTY.LABEL  ラベルステートメントが空です

LA_UNUSED  ラベルが使用されていません

MISRA.IF.NO_ELSE if/else-if ステートメントのチェインが else で終了していないか、または空の else 句で終了しています

MISRA.SWITCH.NODEFAULT switch ステートメントの最後に default 句がありません

MSC02-CPP

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

ASSIGCOND.GEN  割り当て条件

EFFECT  ステートメントの影響はありません

MISRA.FUNC.ADDR & 演算子なしで関数のアドレスが使用されています

MSC03-CPP

EFFECT  ステートメントの影響はありません

SEMICOL  セミコロンの位置を確認してください

MSC04-CPP

MISRA.TOKEN.BADCOM コメントに不適切な文字列があります

MSC07-CPP

LA_UNUSED  ラベルが使用されていません

UNREACH.GEN  到達不能コード

UNREACH.RETURN  到達不能な void return文

UNREACH.SIZEOF  アーキテクチャに関連した到達不能コード

VA_UNUSED.GEN  値を割り当て後に使用しません

VA_UNUSED.INIT  値を初期化後に使用しません

MSC08-CPP

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

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

SV.TAINTED.BINOP  バイナリ演算での未検証整数値の使用

SV.TAINTED.CALL.BINOP  バイナリ演算での未検証整数値の使用

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

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

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

MSC12-C

CWARN.NOEFFECT.SELF_ASSIGN  変数は自身に割り当てられます

CWARN.NOEFFECT.UCMP.GE  符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.GE.MACRO  マクロ内で符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.LT  符号なし値と 0 との比較は、常に false になります

CWARN.NOEFFECT.UCMP.LT.MACRO  マクロ内で符号なし値と 0 との比較は、常に false になります

CWARN.NULLCHECK.FUNCNAME  関数アドレスが 0 と直接比較されます

EFFECT  ステートメントの影響はありません

MISRA.STMT.NO_EFFECT そのステートメントは副作用がなく、制御フローを変更しません

UNREACH.GEN  到達不能コード

UNREACH.RETURN  到達不能な void return文

UNREACH.SIZEOF  アーキテクチャに関連した到達不能コード

MSC12-CPP

CWARN.NOEFFECT.SELF_ASSIGN  変数は自身に割り当てられます

CWARN.NOEFFECT.UCMP.GE  符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.GE.MACRO  マクロ内で符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.LT  符号なし値と 0 との比較は、常に false になります

CWARN.NOEFFECT.UCMP.LT.MACRO  マクロ内で符号なし値と 0 との比較は、常に false になります

CWARN.NULLCHECK.FUNCNAME  関数アドレスが 0 と直接比較されます

EFFECT  ステートメントの影響はありません

MISRA.STMT.NO_EFFECT そのステートメントは副作用がなく、制御フローを変更しません

UNREACH.GEN  到達不能コード

UNREACH.RETURN  到達不能な void return文

UNREACH.SIZEOF  アーキテクチャに関連した到達不能コード

MSC13-C

LV_UNUSED.GEN  ローカル変数は使用されません

VA_UNUSED.GEN  値を割り当て後に使用しません

VA_UNUSED.INIT  値を初期化後に使用しません

MSC13-CPP

LV_UNUSED.GEN  ローカル変数は使用されません

VA_UNUSED.GEN  値を割り当て後に使用しません

VA_UNUSED.INIT  値を初期化後に使用しません

MSC17-C

MISRA.SWITCH.NO_BREAK switch 句の最後に break ステートメントまたは throw ステートメントがありません

MSC18-CPP

MISRA.SWITCH.NO_BREAK switch 句の最後に break ステートメントまたは throw ステートメントがありません

MISRA.SWITCH.WELL_FORMED.BREAK.2012 

MSC20-CPP

MISRA.SWITCH.LABEL switch のラベルが switch ボディ内の入れ子複合ステートメント内に置かれています

MISRA.SWITCH.WELL_FORMED.BREAK.2012 

MSC21-CPP

MISRA.FOR.COND.EQ ループカウンターに対して++ 演算子または -- 演算子を使用していませんが、ループカウンターがイコールかどうかで判定しています

MSC37-C

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

MISRA.RETURN.NOT_LAST 関数内で return が最後のステートメントになっていません

OOP52-CPP

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

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

OOP54-CPP

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

POS02-C

SV.BRM.HKEY_LOCAL_MACHINE  レジストリ操作関数の 'hkey' とパラメーターしての HKEY_LOCAL_MACHINE の使用

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

POS35-C

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

POS36-C

SV.FIU.PROCESS_VARIANTS  危険なプロセス作成の使用

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

SV.USAGERULES.PROCESS_VARIANTS  危険なプロセス作成関数の使用

POS37-C

SV.FIU.PROCESS_VARIANTS  危険なプロセス作成の使用

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

POS39-C

PORTING.BYTEORDER.SIZE  互換性がない型が 'ntohl' などのネットワークマクロで使用されています

PRE00-CPP

MISRA.DEFINE.FUNC マクロが関数のように定義されています

MISRA.USE.EXPANSION マクロの展開

PRE01-CPP

MISRA.DEFINE.NOPARS マクロパラメーターに括弧がありません

PRE04-CPP

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

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

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

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

PRE06-CPP

MISRA.INCGUARD インクルードガードが入力されていません

PRE07-CPP

MISRA.CHAR.TRIGRAPH 3 文字表記の使用

PRE09-CPP

SV.BANNED.RECOMMENDED.ALLOCA  禁止が推奨されているAPI: スタック割り当て関数

SV.BANNED.RECOMMENDED.NUMERIC  禁止が推奨されているAPI: 安全でない数値化関数

SV.BANNED.RECOMMENDED.OEM  禁止が推奨されているAPI: OEM 文字ページ変換関数

SV.BANNED.RECOMMENDED.PATH  禁止が推奨されているAPI: 安全でないパス名操作関数

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

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

SV.BANNED.RECOMMENDED.STRLEN  禁止が推奨されているAPI: 安全でない文字列長関数

SV.BANNED.RECOMMENDED.TOKEN  禁止が推奨されているAPI: 安全でないトークン作成関数

SV.BANNED.RECOMMENDED.WINDOW  禁止が推奨されているAPI: 安全でないウィンドウ関数

SV.BANNED.REQUIRED.CONCAT  禁止が必須とされているAPI: 安全でない文字列連結関数

SV.BANNED.REQUIRED.COPY  禁止が必須とされているAPI: 安全でないバッファコピー関数

SV.BANNED.REQUIRED.GETS  禁止が必須とされているAPI: 安全でないストリーム読み取り関数

SV.BANNED.REQUIRED.ISBAD  禁止が必須とされているAPI: IsBad 型関数

SV.BANNED.REQUIRED.SPRINTF  禁止が必須とされているAPI: 安全でない sprintf 型関数

STR02-C

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

SV.TAINTED.INJECTION  コマンドインジェクション

STR02-CPP

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

SV.TAINTED.INJECTION  コマンドインジェクション

STR03-C

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

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

STR03-CPP

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

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

STR04-CPP

MISRA.CHAR.NOT_CHARACTER 文字でない値に 'char' が使用されています

STR06-CPP

SV.BANNED.TOKEN  

STR07-CPP

MISRA.CHAR.OPERAND 型 'char' または 'wchar_t' の式が文字以外のオペランドで使用されています

STR31-C

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

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

SV.STRBO.BOUND_COPY.OVERFLOW  バインドされた文字列コピーでのバッファオーバーフロー

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

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

SV.STRBO.UNBOUND_COPY  バインドされていない文字列コピーでのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

STR32-C

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

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

STR50-CPP

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

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