Klocwork および Klocwork community チェッカーにマッピングされた Automotive Development 向け Hyundai-Kia Motor Corp (HKMC) セキュア C コーディング基準

ガイドライン チェッカー名および説明
C-ARR-001

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   バインドされていない文字列入力の使用法

C-ARR-002

MISRA.ARRAY.VAR_LENGTH.2012   変数の長さの配列種類は使用しないでください

C-ARR-003

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

C-ARR-004

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

C-ARR-005

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

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

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

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

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

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

C-ARR-006

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

MISRA.PTR.ARITH.NOT_SAME.2012   ポインターオペランドの計算から得られるポインターは、そのポインターオペランドと同じ配列の要素をアドレス指定します

C-ARR-007

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

C-ARR-008

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

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

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

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

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

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

RABV.CHECK   境界チェック前のインデックスの不審な使用

RN.INDEX   負の値のチェック前のインデックスの使用は問題となる可能性があります

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

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.UNBOUND_STRING_INPUT.CIN   バインドされていない文字列入力についての cin の使用法

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

C-ARR-009

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

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

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

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

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

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

RABV.CHECK   境界チェック前のインデックスの不審な使用

RN.INDEX   負の値のチェック前のインデックスの使用は問題となる可能性があります

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

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.UNBOUND_STRING_INPUT.CIN   バインドされていない文字列入力についての cin の使用法

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

C-ARR-010

MISRA.FUNC.UNMATCHED.PARAM  

C-ARR-011

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

C-CON-002

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

C-CON-004

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

C-CON-006

CONC.DL   デッドロック

C-CON-007

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

C-CON-008

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

C-CON-009

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

C-CON-011

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

C-DCI-001

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

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

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

C-DCI-002

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

C-DCI-003

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

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

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

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

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

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

C-DCI-004

CERT.STRUCT.FLEXIBLE_ARRAY_MEMBER   フレキシブル配列メンバーの宣言時には正しい構文を使用する

C-DCI-005

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

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

C-DCI-006

MISRA.FUNC.NOPROT.DEF.2012   関数は定義されていますが、プロトタイプがありません

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

C-DCI-007

MISRA.SWITCH.WELL_FORMED.2012   すべての switch ステートメントは形式が適切である必要があります。

C-DCI-008

CERT.DCL.SWITCH.VAR_BEFORE_CASE   switch ステートメント内では最初の case ラベルより前で変数を宣言しないでください

C-DCI-009

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

C-DCI-010

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

C-DCI-011

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

C-DCI-012

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   バッファオーバーフロー - 配列インデックスが範囲外

C-ENV-001

MISRA.STDLIB.CTYPE.RANGE.2012_AMD1   ctype.h で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません

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

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

C-ENV-002

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

C-ENV-004

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

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

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

C-ERR-001

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

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

C-ERR-002

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

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

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

C-ERR-003

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

C-EXP-001

MISRA.FUNC.UNUSEDRET.2012   非 void 関数の戻り値を使用してください

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

C-EXP-002

MISRA.INCR_DECR.SIDEEFF.2012   インクリメント (++) またはデクリメント (--) 演算子を含む完全な式では、インクリメントまたはデクリメント演算子によって生じる以外に他の副作用が存在してはなりません

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

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

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

C-EXP-003

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

C-EXP-004

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

C-EXP-005

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

ASSIGCOND.GEN   割り当て条件

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

C-EXP-006

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

ASSIGCOND.GEN   割り当て条件

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

C-EXP-007

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

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

C-EXP-008

MISRA.FUNC.RECUR   再帰関数

C-EXP-009

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

C-EXP-010

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

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

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

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

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

C-EXP-011

MISRA.CAST.FUNC_PTR.2012   関数を指すポインタと、別の非互換タイプとの間で実行された変換

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012   不完全なタイプ を指すポインタと、別のタイプとの間で実行された変換

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012   オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト

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

C-EXP-012

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

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

C-EXP-013

MISRA.STDLIB.MEMCMP.PTR_ARG_TYPES   標準ライブラリ関数 memcmp へのポインター引数は、ポインター型、本質的に符号付きの型、本質的に符号なしの型、本質的にブール型、または本質的に列挙型のどれかです

C-EXP-014

MISRA.TYPE.RESTRICT.QUAL.2012   restrict 型修飾子は使用しない

C-EXP-015

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

C-EXP-016

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

ASSIGCOND.GEN   割り当て条件

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

C-EXP-017

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

C-EXP-019

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

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

C-FIO-001

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

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

C-FIO-002

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

C-FIO-006

PORTING.CMPSPEC.EFFECTS.ASSIGNMENT   関数パラメーターでの割り当て

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

C-FIO-007

RH.LEAK   リソースリーク

C-FIO-008

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

C-FIO-009

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

C-FLP-001

MISRA.FOR.COND.FLT   for ループの条件セクションで浮動小数点オブジェクトが使用されています

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

C-FLP-002

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

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

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

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

C-FLP-003

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

C-INT-001

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

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

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

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

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

PRECISION.LOSS   精度の損失

C-INT-002

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

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

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

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

C-INT-003

PRECISION.LOSS   精度の損失

PRECISION.LOSS.CALL   関数呼び出し中の精度の損失

C-INT-004

CWARN.NOEFFECT.OUTOFRANGE  

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

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

C-INT-005

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

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

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

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

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

C-INT-006

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

C-INT-007

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

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

C-INT-008

MISRA.CAST.OBJ_PTR_TO_INT.2012   オブジェクトを指すポインタと、整数タイプとの間で実行された変換

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012   オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト

MISRA.CAST.VOID_PTR_TO_INT.2012   void を指すポインタと算術演算タイプとの間のキャスト

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

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

C-INT-009

CXX.MALLOC.SIZEOF   malloc でメモリを割り当てるときに sizeof() を常に呼び出します

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

C-MEM-001

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

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

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

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

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

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

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

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

C-MEM-002

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

MLK.MUST   メモリリーク

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

MLK.RET.MUST   メモリリーク

C-MEM-003

MISRA.INCOMPLETE.STRUCT   不完全な構造タイプが使用されています

MISRA.MEMB.FLEX_ARRAY.2012   柔軟な配列メンバーは宣言しないでください

C-MEM-004

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

MLK.MUST   メモリリーク

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

MLK.RET.MUST   メモリリーク

C-MEM-005

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

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

C-MEM-006

CXX.REALLOC   realloc() の使用は避けてください

C-MEM-007

CXX.REALLOC   realloc() の使用は避けてください

C-MSC-003

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

C-MSC-004

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

C-MSC-005

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

C-MSC-006

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

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

C-MSC-008

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

C-MSC-010

CXX.GETLOGIN   マルチスレッドアプリケーションで getlogin を使用しないでください

C-MSC-013

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

C-MSC-014

SV.WEAK_CRYPTO.WEAK_HASH   弱ハッシュ関数

C-MSC-015

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

C-POS-001

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

C-POS-002

CXX.POSIX.VFORK   vfork() を使用しないでください

C-POS-003

CXX.PUTENV.LOCAL.PTR   putenv() でポインターをローカル変数に渡さないでください

C-POS-005

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

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

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

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

C-POS-006

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

C-POS-008

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

C-POS-009

CONC.DBL_LOCK   二重ロック

CONC.DBL_UNLOCK   二重ロック解除

CONC.DL   デッドロック

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

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

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

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

C-POS-011

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

C-POS-012

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   ステートメントの影響はありません

INVARIANT_CONDITION.UNREACH   不変な条件式

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

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

UNREACH.GEN   到達不能コード

UNREACH.RETURN   到達不能な void return文

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

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

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

C-PRE-001

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

C-PRE-002

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

C-PRE-003

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

C-STR-001

MISRA.STRING_LITERAL.NON_CONST.2012   オブジェクトの種類が const-qualified char のポインターでない限り、文字列リテラルはオブジェクトに割り当てられません

C-STR-002

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

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

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

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

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

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

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

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

MLK.MUST   メモリリーク

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

MLK.RET.MUST   メモリリーク

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

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

RH.LEAK   リソースリーク

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

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

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

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

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

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

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

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

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

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

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

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

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

C-STR-003

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

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

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

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

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

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

RABV.CHECK   境界チェック前のインデックスの不審な使用

RN.INDEX   負の値のチェック前のインデックスの使用は問題となる可能性があります

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

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.UNBOUND_STRING_INPUT.CIN   バインドされていない文字列入力についての cin の使用法

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

C-STR-004

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

C-STR-005

MISRA.ETYPE.ASSIGN.2012   より狭い基本タイプ、または、異なる基本タイプカテゴリーのオブジェクトへの割り当て

C-STR-006

CXX.MALLOC.WCHAR_LENGTH   wchar_t バッファの場合、malloc でメモリを割り当てるときに (wsclen()+1*sizeof(wchar_t)) を使用します