Klocwork C および C++ チェッカーにマッピングされた CWE ID

マッピングは CWE の最新バージョンに基づきます。

ID チェッカー名および説明
20

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

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

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

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

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

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

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

SV.TAINTED.CALL.DEREF   未検証ポインターの逆参照

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

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

SV.TAINTED.DEREF   未検証ポインターの逆参照

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

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

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

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

SV.TAINTED.PATH_TRAVERSAL   パストラバーサルでの未検証データの使用

SV.TAINTED.SECURITY_DECISION   セキュリティ決定

22

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

SV.DLLPRELOAD.NONABSOLUTE.EXE   プロセスインジェクションベクターの可能性

SV.DLLPRELOAD.SEARCHPATH   DLL の検索に SearchPath の使用は推奨されません

SV.TAINTED.PATH_TRAVERSAL   パストラバーサルでの未検証データの使用

23

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

SV.DLLPRELOAD.NONABSOLUTE.EXE   プロセスインジェクションベクターの可能性

SV.DLLPRELOAD.SEARCHPATH   DLL の検索に SearchPath の使用は推奨されません

73

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

SV.DLLPRELOAD.NONABSOLUTE.EXE   プロセスインジェクションベクターの可能性

SV.DLLPRELOAD.SEARCHPATH   DLL の検索に SearchPath の使用は推奨されません

77

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

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

78

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

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

79

SV.TAINTED.XSS.REFLECTED   クロスサイト スクリプティング脆弱性

80

SV.TAINTED.XSS.REFLECTED   クロスサイト スクリプティング脆弱性

88

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

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

89

CXX.SQL.INJECT   SQL インジェクション

94

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

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

99

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

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

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

SV.TAINTED.PATH_TRAVERSAL   パストラバーサルでの未検証データの使用

114

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

SV.DLLPRELOAD.NONABSOLUTE.EXE   プロセスインジェクションベクターの可能性

SV.DLLPRELOAD.SEARCHPATH   DLL の検索に SearchPath の使用は推奨されません

119

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

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

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

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

CXX.SUSPICIOUS_INDEX_CHECK   境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL   境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO   ゼロのインデックスチェック後のインデックスの不審な使用

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

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

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

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

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

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

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

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

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

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

120

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

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

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

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

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

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

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

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

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

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

121

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

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

122

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

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

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

124

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

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

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

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

CXX.SUSPICIOUS_INDEX_CHECK   境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL   境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO   ゼロのインデックスチェック後のインデックスの不審な使用

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

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

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

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

125

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

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

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

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

CXX.SUSPICIOUS_INDEX_CHECK   境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL   境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO   ゼロのインデックスチェック後のインデックスの不審な使用

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

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

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

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

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

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

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

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

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

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

126

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

127

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

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

129

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

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

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

131

CXX.SIZEOF.CSTRING   char* での sizeof の使用は、誤解を招く場合があります

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

134

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

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

135

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

170

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

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

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

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

176

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

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

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

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

190

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

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

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

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

192

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

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

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

PRECISION.LOSS   精度の損失

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

PRECISION.LOSS.INIT   初期化中の精度の損失

193

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

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

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

195

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

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

196

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

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

197

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

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

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

PRECISION.LOSS   精度の損失

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

PRECISION.LOSS.INIT   初期化中の精度の損失

200

SPECTRE.VARIANT1   予測実行の悪用の可能性

242

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

SV.PIPE.VAR   パイプのハイジャックの可能性

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

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

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

250

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

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

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

251

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

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

252

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

253

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

256

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

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

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

259

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

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

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

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

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

269

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

272

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

273

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

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

276

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

284

SV.LPP.CONST   危険な関数についての安全でないマクロの使用

SV.LPP.VAR   危険な関数についての安全でないパラメーターの使用

287

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

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

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

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

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

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

290

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

307

CXX.SV.PWD_INPUT.REVIEW   パスワード認証は、ブルートフォース攻撃に対してチェックする必要があります

311

CXX.SV.PRIVATE_KEY.EMPTY_PASSWD   不正な方法で秘密キーをシリアル化しようとしています

CXX.SV.PRIVATE_KEY.UNENCRYPTED   不正な方法で秘密キーをシリアル化しようとしています

312

CXX.SV.PRIVATE_KEY.EMPTY_PASSWD   不正な方法で秘密キーをシリアル化しようとしています

CXX.SV.PRIVATE_KEY.UNENCRYPTED   不正な方法で秘密キーをシリアル化しようとしています

321

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

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

326

SV.USAGERULES.SPOOFING   スプーフィングの影響を受けやすい関数の使用

327

RCA   危険な暗号化アルゴリズムが使用されています

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

362

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

367

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

369

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

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

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

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

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

377

SV.PCC.CONST   CreateFile の呼び出し時に安全でない (定数) テンポラリファイルの名前が使用されています

SV.PCC.INVALID_TEMP_PATH   CreateFile の呼び出し時に安全でないテンポラリファイルの名前が使用されています

SV.PCC.MISSING_TEMP_CALLS.MUST   CreateFile の呼び出し時に安全なテンポラリファイルの名前が欠落しています

SV.PCC.MISSING_TEMP_FILENAME   CreateFile の呼び出し時にテンポラリファイルの名前が欠落しています

SV.PCC.MODIFIED_BEFORE_CREATE   CreateFile の呼び出し前にテンポラリファイルが変更されます

390

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

391

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

394

RETVOID.GEN   非 void 関数が void 値を返しています

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

VOIDRET   void 関数が戻り値を返しています

400

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

CL.MLK.ASSIGN   メモリリーク - 代入演算子

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

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

MLK.MUST   メモリリーク

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

MLK.RET.MUST   メモリリーク

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

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

401

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

CL.MLK.ASSIGN   メモリリーク - 代入演算子

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

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

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

MLK.MUST   メモリリーク

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

MLK.RET.MUST   メモリリーク

403

RH.LEAK   リソースリーク

404

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

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

RH.LEAK   リソースリーク

412

CONC.DL   デッドロック

413

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

415

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

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

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

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

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

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

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

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

416

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

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

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

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

CL.SHALLOW.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   解放済みメモリの使用

421

SV.PIPE.CONST   パイプのハイジャックの可能性

SV.PIPE.VAR   パイプのハイジャックの可能性

426

SV.TAINTED.PATH_TRAVERSAL   パストラバーサルでの未検証データの使用

457

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

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

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

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

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

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

464

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

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

467

CXX.SIZEOF.CSTRING   char* での sizeof の使用は、誤解を招く場合があります

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

468

CWARN.ALIGNMENT   不正確なポインタのスケーリングが使用されています

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

476

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

478

MISRA.SWITCH.WELL_FORMED.DEFAULT.2012   各 switch ステートメントはデフォルトラベルを有するべきです。

480

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

ASSIGCOND.GEN   割り当て条件

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

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

481

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

ASSIGCOND.GEN   割り当て条件

482

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

484

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

MISRA.SWITCH.WELL_FORMED.BREAK.2012   条件なしの break ステートメントで各 switch 句を終了するべきです。

497

SV.STR_PAR.UNDESIRED_STRING_PARAMETER   ファイルパスの不要な文字列

522

CXX.SV.PRIVATE_KEY.EMPTY_PASSWD   不正な方法で秘密キーをシリアル化しようとしています

CXX.SV.PRIVATE_KEY.UNENCRYPTED   不正な方法で秘密キーをシリアル化しようとしています

539

CXX.SV.PERSISTENT_COOKIE   永続的な cookie の違法使用

561

INVARIANT_CONDITION.GEN   不変な条件式

INVARIANT_CONDITION.UNREACH   不変な条件式

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

UNREACH.ENUM   enum が取りうる値が原因で、コードは到達不能になっています

UNREACH.GEN   到達不能コード

UNREACH.RETURN   到達不能な void return文

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

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

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

562

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

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

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

563

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

570

INVARIANT_CONDITION.GEN   不変な条件式

INVARIANT_CONDITION.UNREACH   不変な条件式

571

INVARIANT_CONDITION.GEN   不変な条件式

INVARIANT_CONDITION.UNREACH   不変な条件式

590

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

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

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

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

606

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

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

611

CXX.SV.XXE   XMLファイルのパース中にXXE攻撃を招く可能性のある外部エンティティを解決しようとしています。

614

CXX.SV.INSECURE_COOKIE   安全でないクッキー

628

MISRA.FUNC.UNMATCHED.PARAMS   関数に渡される仮引数と実際のパラメーターの数が一致しません

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

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

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

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

665

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

667

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

CONC.DBL_LOCK   二重ロック

CONC.DBL_UNLOCK   二重ロック解除

CONC.DL   デッドロック

CONC.NO_LOCK   変数に欠落しているロック

672

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

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

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

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

CL.SHALLOW.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   解放済みメモリの使用

676

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 型関数

681

PRECISION.LOSS   精度の損失

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

PRECISION.LOSS.INIT   初期化中の精度の損失

682

CWARN.ALIGNMENT   不正確なポインタのスケーリングが使用されています

CWARN.BAD.PTR.ARITH   不良なポインタ算術演算

CXX.SIZEOF.CSTRING   char* での sizeof の使用は、誤解を招く場合があります

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

MISRA.SHIFT.RANGE   シフト演算子の右側のオペランドは範囲外 (左側のオペランドの最大ビット長以上か、または負) です

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

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

686

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

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

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED   予期しない 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.UNKWN_FORMAT   print 関数呼び出しの書式指定子が不明です

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

690

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

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

704

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

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

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

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

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

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

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

MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012   void ポインタから、オブジェクトを指すポインタに実行された変換

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

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

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

732

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

754

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

762

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

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

764

CONC.DBL_LOCK   二重ロック

765

CONC.DBL_UNLOCK   二重ロック解除

768

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

MISRA.LOGIC.SIDEEFF.COND   条件式の分岐式に副作用があります

772

RH.LEAK   リソースリーク

783

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

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

786

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

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

787

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

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

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

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

CXX.SUSPICIOUS_INDEX_CHECK   境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL   境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO   ゼロのインデックスチェック後のインデックスの不審な使用

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

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

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

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

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

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

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

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

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

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

788

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

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

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

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

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

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

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

798

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

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

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

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

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

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

805

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

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

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

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

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

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

CXX.SIZEOF.CSTRING   char* での sizeof の使用は、誤解を招く場合があります

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

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

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

806

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

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

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

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

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

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

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

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

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

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

822

SV.TAINTED.CALL.DEREF   未検証ポインターの逆参照

SV.TAINTED.DEREF   未検証ポインターの逆参照

832

CONC.NO_LOCK   変数に欠落しているロック

833

CONC.DL   デッドロック

835

INFINITE_LOOP.GLOBAL   無限ループ

INFINITE_LOOP.LOCAL   無限ループ

INFINITE_LOOP.MACRO   無限ループ

843

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

896

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

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

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

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

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

SV.TAINTED.CALL.DEREF   未検証ポインターの逆参照

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

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

SV.TAINTED.DEREF   未検証ポインターの逆参照

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

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

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

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

SV.TAINTED.PATH_TRAVERSAL   パストラバーサルでの未検証データの使用

SV.TAINTED.SECURITY_DECISION   セキュリティ決定

SV.TAINTED.XSS.REFLECTED   クロスサイト スクリプティング脆弱性

910

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

1037

SPECTRE.VARIANT1   予測実行の悪用の可能性

1335

MISRA.SHIFT.RANGE   シフト演算子の右側のオペランドは範囲外 (左側のオペランドの最大ビット長以上か、または負) です

サポートのサマリー:

  • 92 規則

"MISRA"、"MISRA C" および、"MISRA C++" は、The MISRA Consortium Limited の登録商標です。​