Klocwork および Klocwork community チェッカーにマッピングされた CERT C++ 規則
以下の表では、コンピューター緊急対応チーム (CERT) が定義しているセキュアコーディング基準にマッピングされた、Klocwork および Klocwork community C++ チェッカーをリストしています。
ガイドライン | チェッカー名および説明 |
---|---|
ARR37-C(L2) |
CERT.ARR.PTR.ARITH 演算式にポインターが使用されています |
ARR39-C(L2) |
CERT.ARR.PTR.ARITH 演算式にポインターが使用されています |
CON33-C(L3) |
CERT.CONC.LIB_FUNC_USE ライブラリ関数の使用時には競合状態を避けてください |
CON37-C(L2) |
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.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 ABV.TAINTED 未検証の入力によるバッファオーバーフロー SV.TAINTED.ALLOC_SIZE メモリ割り当て時の未検証の整数の使用 SV.TAINTED.CALL.INDEX_ACCESS 関数呼び出し時の配列インデックスとしての未検証の整数の使用 SV.TAINTED.CALL.LOOP_BOUND 関数呼び出しのループ条件での未検証の整数の使用 |
CTR50-CPP:(L2) |
SV.TAINTED.INDEX_ACCESS 配列インデックスとしての未検証の整数の使用 |
CTR51-CPP(L2) |
ITER.CONTAINER.MODIFIED 無効な反復子の使用 |
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(L2) |
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 または同様の関数によって返されるポインタは、同じ関数の後続の呼び出しに続いては使用しません |
ERR33-C(L1) |
NPD.CHECK.MUST ポインタを明示的に NULL チェックした後に逆参照します NPD.FUNC.MUST NULL を返す可能性がある関数の戻り値が逆参照されます SV.RVT.RETVAL_NOTTESTED 戻り値の無視 |
ERR50-CPP(L3) |
CERT.ERR.ABRUPT_TERM 突然プログラムを終了しないでください MISRA.TERMINATE terminate() 関数が明示的に呼び出されています |
ERR51-CPP(L3) |
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 リソースリーク |
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(L2) |
CERT.MEMCMP.PADDED_DATA パディングデータを比較しないでください |
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(L2) |
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(L1) |
CERT.EXPR.PASS_NON_STD_LAYOUT 実行境界を超えて標準ではないレイアウトタイプオブジェクトを渡さないでください |
EXP61-CPP(L2) |
LOCRET.RET 関数がローカル変数のアドレスを返しています |
EXP62-CPP(L2) |
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 定数との比較 |
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 ループのカウンターが浮動小数点タイプです |
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 メンバーが浮動小数点の場合、比較しないでください |
INT32-C(L2) |
CWARN.NOEFFECT.OUTOFRANGE 範囲外の値 NUM.OVERFLOW オーバーフローの可能性 NUM.OVERFLOW.DF 起こり得る数値のオーバーフローまたはラップアラウンド |
INT34-C(L3) |
MISRA.SHIFT.RANGE.2012 シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負 |
MEM50-CPP(L1) |
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(L1) |
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 チェック前のポインタの逆参照は問題となる可能性があります |
MEM54-CPP(L1) |
CERT.MEM.PLACEMENTNEW.MISALIGNED アライメントが適切なストレージを placement new に提供します CERT.MEM.PLACEMENTNEW.TOOSMALL 十分なストレージを placement new に提供します。 |
MEM55-CPP(L1) |
CERT.MEM.OVERRIDE.DELETE 'delete' の動的メモリ管理要件を変更してください CERT.MEM.OVERRIDE.NEW 'new' の動的メモリ管理要件を変更してください |
MSC30-C(L2) |
CERT.MSC.STD_RAND_CALL 疑似乱数の生成に std::rand() を使用しないでください |
MSC32-C(L1) |
CERT.MSC.SEED_RANDOM 疑似乱数ジェネレータを適切にシードする |
MSC33-C(L1) |
CERT.MSC.ASCTIME asctime() 関数に無効なデータを渡さないでください |
MSC37-C(L2) |
FUNCRET.GEN 非 void 関数に戻り値がありません FUNCRET.IMPLICIT 暗黙的に int を返す非 void 関数に戻り値がありません |
MSC39-C(L3) |
VA.LIST.INDETERMINATE 不定値を持つ va_list に対する va_arg() の呼び出し |
MSC41-C(L1) |
CXX.SV.PWD.PLAIN プレーンな文字列を使用してパスワードを設定しようとしています CXX.SV.PWD.PLAIN.LENGTH 15 文字未満の長さでパスワードを設定しようとしています CXX.SV.PWD.PLAIN.LENGTH.ZERO ゼロ文字の長さでパスワードを設定しようとしています HCC ハードコードされた資格情報の使用 HCC.PWD ハードコードされたパスワードの使用 HCC.USER ハードコードされたユーザー名の使用 |
MSC50-CPP(L2) |
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(L2) |
CL.MLK.VIRTUAL メモリリーク - デストラクタで発生している可能性 CWARN.DTOR.NONVIRT.DELETE 仮想メソッドを持ち、仮想デストラクタを持たないクラスのオブジェクトの式を削除しています |
OOP53-CPP(L3) |
CERT.OOP.CTOR.INIT_ORDER コンストラクターメンバー初期化子を正規の順序で作成します |
OOP54-CPP(L3) |
CL.SELF-ASSIGN 解放済みメモリの使用 (二重解放) - operator= |
OOP55-CPP(L2) |
CERT.OOP.PTR_MEMBER.NO_MEMBER メンバー演算子へのポインターを使用して、存在しないメンバーにアクセスしないでください |
OOP57-CPP(L2) |
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(L1) |
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(L2) |
MISRA.INCL.SIGNAL.2012 標準ヘッダーファイル signal.h は使用しない |
POS47-C(L1) |
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 マクロ定義に # 演算子または ## 演算子が使用されています |
PRE32-C(L3) |
MISRA.EXPANSION.DIRECTIVE マクロの引数内にディレクティブのようなトークンがあります |
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 ポインターに割り当てないでください |
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(L1) |
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 チェック前のポインタの逆参照は問題となる可能性があります |
"MISRA"、"MISRA C" および、"MISRA C++" は、The MISRA Consortium Limited の登録商標です。