Skip to main content

Cのスキャンルール

 

Contrast Scanでは、Cに対して以下のルールをサポートしています。

深刻度

エンジンルールID

Contrastルール

説明

重大

OPT.C.AvoidCompDiffTypes 

Avoid Comp Diff Types 

AvoidCompDiffTypes:基本型が異なる変数の比較禁止

重大

OPT.C.CERTC.ARR38 

Adding or subtracting an integer to a pointer if resulting value does not refer to a valid array element 

ARR38:結果の値が有効な配列要素を参照していない場合の配列ポインタの加算または減算の禁止

重大

OPT.C.CERTC.EXP34 

NULL Pointer Dereference 

EXP34:NULLポインタの参照禁止

重大

OPT.C.CERTC.MEM30 

Do not access freed memory 

MEM30:解放されたメモリにアクセスしない(解放後の使用)

重大

OPT.C.CERTC.MEM34 

Freeing Memory not on the Heap 

MEM34:ヒープ上にないメモリの解放の禁止

重大

OPT.C.CERTC.PRE09 

Do not replace secure functions with less secure functions 

PRE09:関数のセキュアの低い関数への置き換え禁止

重大

OPT.C.CERTC.SIG30 

Signal Handler Use of a Non-reentrant Function 

SIG30:シグナルハンドラでの再入可能でない関数の使用

重大

OPT.C.CERTC.SIG32 

Signal Handler Use of a Non-reentrant Function 

SIG32:シグナルハンドラでの再入可能でない関数の使用

重大

OPT.C.CERTC.STR31 

Guarantee that storage for strings has sufficient space 

STR31:文字列用の保存領域に文字データとnull終端文字の十分なスペースの確保

重大

OPT.C.CERTC.STR33 

Size wide character strings correctly 

STR33:ワイド文字の文字列のサイズを正しく指定

重大

OPT.C.CERTC.STR35 

Do not copy data from an unbounded source to a fixed-length array 

STR35:長さに制限のないデータの固定長配列へのコピーの禁止

重大

OPT.C.CheckReturnInPublicFunctions 

Check Return In Public Functions 

CheckReturnInPublicFunctions:関数はローカル変数のポインタや参照の返却の禁止

重大

OPT.C.MISRAC.NumberArgsInCallsMustMatchFormalParams 

Number Args In Calls Must Match Formal Params 

NumberArgsInCallsMustMatchFormalParams:MISRA 16.6:関数に渡される仮引数と実際のパラメーターの数の一致が必要

重大

OPT.C.SEC.AnonymousLdapBind 

Anonymous Ldap Bind

AnonymousLdapBind:アクセス制御 - 匿名LDAPバインドの検出

重大

OPT.C.SEC.PathTraversal 

Path Traversal

PathTraversal:リソースへのパス名で構成される、無害化されていないユーザ制御の入力の回避

重大

OPT.C.SEC.StaticDatabaseConnection 

Static Database Connection

StaticDatabaseConnection:静的なデータベース接続/セッション

重大

OPT.C.SEC.UnsafeChroot 

Unsafe Chroot 

UnsafeChroot:安全でないchrootの呼び出し

重大

OPT.C.CERTC.FIO30 

Exclude unsanitized input 

FIO30:サニタイズされていないユーザー入力をフォーマット文字列から除外

重大

OPT.C.CERTC.STR02 

Sanitize data passed to sensitive subsystems 

STR02:機密性の高いサブシステムに渡されるデータのサニタイズ

重大

OPT.C.SEC.ConnectionStringParameterPollution 

Connection String Parameter Pollution

ConnectionStringParameterPollution::信頼できない入力で汚染された接続文字列

重大

OPT.C.SEC.DoSRegexp 

DoS Regexp

DoSRegexp:悪意のある正規表現によるDos攻撃の防止(正規表現インジェクション)

重大

OPT.C.SEC.LdapInjection 

Ldap Injection

LdapInjection:LDAP検索フィルタにおける無害化されていないユーザ制御入力の回避

重大

OPT.C.SEC.NoSQLInjection 

No SQL Injection

NoSQLInjection:データクエリロジックにおける特殊要素の不適切な無害化(NoSQLインジェクション)

重大

OPT.C.SEC.ProcessControl 

Process Control

ProcessControl::信頼できないソースからの実行可能ファイルまたはライブラリのロードの禁止

重大

OPT.C.SEC.SqlInjection 

SQL Injection

SqlInjection:SQLコマンドで使用する特殊要素の不適切な無害化(SQLインジェクション) 

重大

OPT.C.SEC.XmlEntityInjection 

Xml Entity Injection

XmlEntityInjection:XMLエンティティインジェクション

重大

OPT.C.SEC.HardcodedCryptoKey 

Hardcoded Crypto Key

HardcodedCryptoKey:ハードコードされた暗号鍵

OPT.C.AvoidSignalManagmentFunctions 

Avoid Signal Managment Functions 

AvoidSignalManagmentFunctions:シグナル管理関数の使用の回避

OPT.C.AvoidStructures 

Avoid Structures 

AvoidStructures: 特定の種類の集約オブジェクト(struct、union、VARIANT)の使用の回避

OPT.C.CERTC.ARR01 

Do not apply the sizeof operator to a pointer when taking the size of an array 

ARR01:配列のサイズを取得する際のポインタに対するsizeof演算子の使用禁止

OPT.C.CERTC.ARR33 

Guarantee that copies are made into storage of sufficient size 

ARR33:コピーが十分なサイズのストレージに作成されることの保証

OPT.C.CERTC.ENV01 

Assumptions about the size of an environment variable 

ENV01:環境変数のサイズを仮定することは禁止

OPT.C.CERTC.ENV32 

Terminating Atexit handler by returning 

ENV32:「atexit」で登録したハンドラ関数は必ず「return」が必要

OPT.C.CERTC.EXP01 

Use of sizeof() on a Pointer Type 

EXP01:ポインタ型での「sizeof()」の使用の禁止

OPT.C.CERTC.EXP33 

Use of Uninitialized Variable 

EXP33:初期化されていない変数の読み取りの禁止

OPT.C.CERTC.FIO01 

Functions using file names for identification 

FIO01:ファイル名を識別に使用する関数の使用に注意

OPT.C.CERTC.FIO36 

Do not assume a new-line character is read when using fgets() 

FIO36:「fgets()」の使用時に改行文字が読み込まれたと仮定することは禁止

OPT.C.CERTC.FIO37 

Do not assume character data has been read 

FIO37:文字データの読み取り成功時に空でない文字列を返すという想定の禁止

OPT.C.CERTC.INT34 

Check number of bits in shift operations 

INT34:負のビット数または左オペランドに存在するビット数より多いビットのシフト演算の禁止

OPT.C.CERTC.MEM00 

Allocate and free memory in the same module 

MEM00:メモリの割り当てと解放は、同じ翻訳単位内の同一抽象レベルで行うことが必要

OPT.C.CERTC.MEM31 

Only Free allocated memory once 

MEM31:動的に割り当てられたメモリの解放は一度だけに限る(解放の重複)

OPT.C.CERTC.MEM32 

Detect and handle memory allocation errors 

MEM32:メモリ割り当て時のエラーの検出と処理が必要

OPT.C.CERTC.POS35 

Race condition with link following 

POS35:シンボリックリンクの存在をチェックする際の競合状態の回避

OPT.C.CERTC.POS36 

Observe correct revocation order while relinquishing privileges 

POS36:権限を廃棄する場合は正しい失効順序が必要

OPT.C.CERTC.POS37 

Improper Check for Dropped Privileges 

POS37:権限の破棄での結果の確認

OPT.C.CERTC.PRE02 

Macro replacement lists should be parenthesized 

PRE02:マクロ置換リストは括弧で囲む事が必要

OPT.C.CERTC.SIG02 

Avoid using signals to implement normal functionality 

SIG02:標準的な機能を実装する際はシグナルの使用の回避

OPT.C.CERTC.STR06 

Ensure strtok() leaves the parse string unchanged 

STR06:「strtok()」が分割対象文字列を変更しないと想定することの禁止

OPT.C.CERTC.STR07 

Use TR 24731 for remediation of existing string manipulation 

STR07:既存の文字列操作コードの修正に「ISO/IEC TR 24731」関数の使用

OPT.C.CERTC.STR32 

Null-terminate byte strings as required 

STR32:必要に応じた文字列のNull終端が必要

OPT.C.CERTC.STR36 

Do not specify the bound of a character array initialized with a string literal 

STR36:文字列リテラルで初期化された文字配列の変更の禁止

OPT.C.CorrectUseMemoryLeaks 

Correct Use Memory Leaks 

CorrectUseMemoryLeaks:割り当てられたメモリは同じスコープ内で解放が必要

OPT.C.DontUseMemoryFunction 

Dont Use Memory Function 

DontUseMemoryFunction:malloc、calloc、realloc、freeの使用禁止

OPT.C.GlobalVarNotUsedLocally 

Global Var Not Used Locally 

GlobalVarNotUsedLocally:ローカルで使用されていないグローバル変数

OPT.C.ImplicitTypeConversion 

Implicit Type Conversion 

ImplicitTypeConversion:暗黙の型変換を引き起こす関数呼び出しの回避

OPT.C.LocalVarsWithGlobalNames 

Local Vars With Global Names 

LocalVarsWithGlobalNames:グローバル変数とローカル変数における同じ名前の回避

OPT.C.MISRAC.AvoidFileScopeWhenAccessedFromSingleFunction 

Avoid File Scope When Accessed From Single Function 

AvoidFileScopeWhenAccessedFromSingleFunction:MISRA 8.7:オブジェクトが単一の関数からのみアクセスされる場合、ブロックスコープで定義することが必要

OPT.C.MISRAC.AvoidRecursiveFunctions 

Avoid Recursive Functions 

AvoidRecursiveFunctions:MISRA 16.2:関数は直接的にも間接的にも自分自身の呼び出しを禁止

OPT.C.MISRAC.DoNotCheckFloatEqualNotEqual 

Do Not Check Float Equal Not Equal 

DoNotCheckFloatEqualNotEqual:MISRA 13.3:浮動小数点型は等号または不等号での判定は禁止

OPT.C.MISRAC.DoNotUseDynamicHeapAllocation 

Do Not Use Dynamic Heap Allocation 

DoNotUseDynamicHeapAllocation:MISRA 20.4:動的ヒープ割り当ての使用禁止

OPT.C.MISRAC.DoNotUseReservedNameAsIdentifier 

Do Not Use Reserved Name As Identifier 

DoNotUseReservedNameAsIdentifier:MISRA 20.2:標準ライブラリのマクロ、オブジェクト、関数の名前の再利用は禁止

OPT.C.MISRAC.DoNotUseReservedNameAsMacroName 

Do Not Use Reserved Name As Macro Name 

DoNotUseReservedNameAsMacroName:MISRA 20.1:標準ライブラリの予約済み識別子、マクロ、関数の定義、再定義、未定義は禁止

OPT.C.MISRAC.DoNotUseSetjmpLongjmp 

Do Not Use Setjmp Longjmp 

DoNotUseSetjmpLongjmp:MISRA 20.7:「setjmp」マクロおよび 「longjmp」関数の使用禁止

OPT.C.MISRAC.DoNotUseSignalHandlingFunctions 

Do Not Use Signal Handling Functions 

DoNotUseSignalHandlingFunctions:MISRA 20.8:「signal.h」のシグナル処理機能の使用禁止

OPT.C.MISRAC.DoNotUseStdioFunctions 

Do Not Use Stdio Functions 

DoNotUseStdioFunctions:MISRA 20.9:入出力ライブラリ「stdio.h」を本番環境のコードでの使用禁止

OPT.C.MISRAC.DoNotUseTimeFunctions 

Do Not Use Time Functions 

DoNotUseTimeFunctions:MISRA 20.12:ライブラリ「time.h」の時間処理関数の使用禁止

OPT.C.MISRAC.EncloseInParanthesesMacroArgs 

Enclose In Parantheses Macro Args 

EncloseInParanthesesMac:MISRA 19.10:関数のようなマクロの定義では各パラメータを括弧で囲むことが必要

OPT.C.MISRAC.ExplicitTypeForVarsFunctions 

Explicit Type For Vars Functions 

ExplicitTypeForVarsFunctions:MISRA 8.2:オブジェクトまたは関数の宣言または定義には、常にその型の明示が必要

OPT.C.MISRAC.FunctionMacroInvokedWithAllArguments 

Function Macro Invoked With All Arguments 

FunctionMacroInvokedWithAllArguments:MISRA 19.8:関数のようなマクロの呼び出しには、すべての引数が必要

OPT.C.MISRAC.IdentifiersMustNotExceed31Chars 

Identifiers Must Not Exceed31 Chars 

IdentifiersMustNotExceed31Chars:MISRA 5.1:識別子(内部および外部)は31文字を超えてはならない

OPT.C.MISRAC.InitialiseAutoVariablesBeforeUse 

Initialise Auto Variables Before Use 

InitialiseAutoVariablesBeforeUse:MISRA 9.1:すべてのauto変数は使用する前に値を割り当てる必要

OPT.C.MISRAC.InitializationForArrayStructsMustMatchLayout 

Initialization For Array Structs Must Match Layout 

InitializationForArrayStructsMustMatchLayout:MISRA 9.2:中括弧により配列と構造体のゼロでない初期化および構造の一致が必要

OPT.C.MISRAC.ProperBitFieldStruct 

Proper Bit Field Struct 

ProperBitFieldStruct:MISRA 3.5:構造体内のビットフィールドはint型を使用し、非ビットフィールドとの混在は禁止

OPT.C.MISRAC.SingleDefinitionForExternalLinkageIdentifiers 

Single Definition For External Linkage Identifiers 

SingleDefinitionForExternalLinkageIdentifiers:MISRA 8.9:外部リンクを持つ識別子は正しい一つの定義が必要

OPT.C.MultipleInclusionPreventionGuard 

Multiple Inclusion Prevention Guard 

MultipleInclusionPreventionGuard:ヘッダでの重複したインクルードの保護

OPT.C.NoSpecifyUnixNamesInInclude 

No Specify Unix Names In Include 

NoSpecifyUnixNamesInInclude:「#include」ディレクティブでの絶対パスの禁止

OPT.C.NonGotoStatement 

Non Goto Statement 

NonGotoStatement:goto文の使用禁止

OPT.C.RemoveUnusedMethods 

Remove Unused Methods 

RemoveUnusedMethods:未使用の関数の削除

OPT.C.UnspecifiedParameters 

Unspecified Parameters 

UnspecifiedParameters: 関数での可変引数(可変数のパラメータ)の回避

OPT.C.PORT.HardcodedAbsolutePath 

Hardcoded Absolute Path

HardcodedAbsolutePath:絶対パスのハードコード禁止

OPT.C.CERTC.ENV04 

Calling system() if you do not need a command processor 

ENV04:コマンドプロセッサが不要な場合は「system()」の使用禁止

OPT.C.CERTC.FIO34 

Use int to capture the return value of character I/O functions 

FIO34:文字I/O関数の戻り値の判定には「int」の使用

OPT.C.CERTC.FIO43 

Temporary File created with Incorrect Permissions 

FIO43:不正なアクセス権限のディレクトリでの一時ファイルの作成

OPT.C.MISRAC.AvoidVarargFunctions 

Avoid Vararg Functions 

AvoidVarargFunctions:MISRA 16.1:引数の数が可変の関数の定義の禁止

OPT.C.SEC.ResourceInjection 

Resource Injection

ResourceInjection:リソース識別子の不適切な制御(リソースインジェクション)

OPT.C.SEC.HardcodedSalt 

Hardcoded Salt

HardcodedSalt:ハードコードされたソルトの使用

OPT.C.SEC.InsufficientKeySize 

Insufficient Key Size

InsufficientKeySize:脆弱な暗号方式・鍵長の検出

OPT.C.SEC.WeakCryptographicHash 

Weak Cryptographic Hash

WeakCryptographicHash:脆弱な暗号化ハッシュ

OPT.C.SEC.WeakEncryption 

Weak Encryption

WeakEncryption:脆弱な共通鍵暗号アルゴリズム

情報

OPT.C.AvoidBracesSameLine 

Avoid Braces Same Line 

AvoidBracesSameLine:中括弧「{}」は別の行に記述

情報

OPT.C.AvoidNumericValues 

Avoid Numeric Values 

AvoidNumericValues:コード内の数値定数の回避

情報

OPT.C.AvoidQuestionMark 

Avoid Question Mark 

AvoidQuestionMark::「?:」(三項演算子)の使用の回避

情報

OPT.C.BreakInLoops 

Break In Loops 

BreakInLoops:ループ内でのbreak文の使用回避

情報

OPT.C.ClassNamingConvention 

Class Naming Convention 

ClassNamingConvention:struct、union、class、namespaceの名前は命名規則に従うことが必要

情報

OPT.C.ConstantNamingConvention 

Constant Naming Convention 

ConstantNamingConvention:グローバル定数の命名規則

情報

OPT.C.DataMemberNamingConvention 

Data Member Naming Convention 

DataMemberNamingConvention:データメンバーの命名規則

情報

OPT.C.ForbiddenFunctions 

Forbidden Functions 

ForbiddenFunctions:推奨されない関数の使用の回避

情報

OPT.C.MISRAC.AtMostOneBreakInLoop 

At Most One Break In Loop 

AtMostOneBreakInLoop:MISRA 14.6:すべての反復文にはループの終了に使用されるbreak文は1つ以内

情報

OPT.C.MISRAC.AvoidTrigraphs 

Avoid Trigraphs 

AvoidTrigraphs:MISRA 4.2:3文字表記の使用禁止

情報

OPT.C.MISRAC.DoNotCommentOutSourceCode 

Do Not Comment Out Source Code 

DoNotCommentOutSourceCode:MISRA 2.4:コードの一部のコメントアウトの禁止

情報

OPT.C.MISRAC.ExplicitCheckAgainstZero 

Explicit Check Against Zero 

ExplicitCheckAgainstZero:MISRA 13.2:オペランドが実質的にブール値でない限り、ゼロに対する値の明示的な判定が必要

情報

OPT.C.MISRAC.IncludeNotAfterStatements 

Include Not After Statements 

IncludeNotAfterStatements:MISRA 19.1:「#include」ディレクティブは、他のプリプロセッサディレクティブやコメントによってのみファイル内で先行することが必要

情報

OPT.C.MacrosNamingConvention 

Macros Naming Convention 

MacrosNamingConvention:マクロの命名規則

情報

OPT.C.MaximunLineSize 

Maximun Line Size 

MaximunLineSize:MaxLineSize:長すぎるコード行の禁止

情報

OPT.C.MethodNamingConvention 

Method Naming Convention 

MethodNamingConvention:関数、クラスメソッドの命名規則

情報

OPT.C.MethodsCommentCodeRatio 

Methods Comment Code Ratio 

MethodsCommentCodeRatio:コメント行の比率が低い関数の回避

情報

OPT.C.ParenthesizedFunctions 

Parenthesized Functions 

ParenthesizedFunctions: 「sizeof」は括弧を付けて「return」に記述

情報

OPT.C.SpaceIndentation 

Space Indentation 

SpaceIndentation:演算子の前後はスペースを入れる

情報

OPT.C.TypedefNamingConvention 

Typedef Naming Convention 

TypedefNamingConvention:「typedef」で宣言された型の名前は命名規則に従うことが必要

情報

OPT.C.UseBlocks 

Use Blocks 

UseBlocks:条件文や反復文はブロックで使う

OPT.C.AvoidManyParametersFunction 

Avoid Many Parameters Function

AvoidManyParametersFunction:パラメータが多すぎる関数の回避

OPT.C.AvoidOneCaseSwitch 

Avoid One Case Switch 

AvoidOneCaseSwitch:case句の数が少ないswitch文の回避

OPT.C.CERTC.ARR31 

Use consistent array notation across all source files 

ARR31:すべてのソースファイルで一貫した配列表記の使用

OPT.C.CERTC.INT13 

Use bitwise operators only on unsigned operands 

INT13:符号なしオペランドにのみビット演算子の使用

OPT.C.CERTC.POS33 

Do not use vfork() 

POS33:「vfork()」の使用禁止

OPT.C.CERTC.PRE00 

Prefer inline or static functions to function-like macros 

PRE00:関数形式のようなマクロよりもインライン関数やスタティック関数を優先

OPT.C.CheckNamesDefinitionAndDeclaration 

Check Names Definition And Declaration 

CheckNamesDefinitionAndDeclaration:関数定義と宣言における正式なパラメータ名の使用

OPT.C.ClassCommentCodeRatio 

Class Comment Code Ratio 

ClassCommentCodeRatio:コメントに対するコードの比率が低いクラス、構造体、ユニオンの回避

OPT.C.DontComparePointerToNull 

Dont Compare Pointer To Null 

DontComparePointerToNull:ポインタとNULLの比較禁止

OPT.C.DontComparePointerToZero 

Dont Compare Pointer To Zero 

DontComparePointerToZero:ポインタとゼロの比較禁止

OPT.C.IncludingHeaderFile 

Including Header File 

IncludingHeaderFile:同じ名前のヘッダーファイルを含まない実装の回避

OPT.C.InitializationInsteadAssignment 

Initialization Instead Assignment 

InitializationInsteadAssignment:常に代入の代わりに初期化の使用

OPT.C.MISRAC.AvoidSingleLineComments 

Avoid Single Line Comments 

AvoidSingleLineComments:MISRA 2.2:C99/C++に単一行のコメント「//...」は使用禁止

OPT.C.MISRAC.AvoidUnreachableCode 

Avoid Unreachable Code 

AvoidUnreachableCode:MISRA 14.1:到達不能コードの存在禁止

OPT.C.MISRAC.CaseWithBreak 

Case With Break 

CaseWithBreak:MISRA 15.2:switchブロックの空でないすべてのcase句は無条件のbreak文が必要

OPT.C.MISRAC.CommentShouldNotContainOpenCommentChars 

Comment Should Not Contain Open Comment Chars 

CommentShouldNotContainOpenCommentChars:MISRA 2.3:コメントには文字列「/*」が含むことは禁止

OPT.C.MISRAC.DeclareConstPointerParamIfUnchangedValue 

Declare Const Pointer Param If Unchanged Value 

DeclareConstPointerParamIfUnchangedValue:MISRA 16.7:関数内の参照パラメータはアドレス指定のオブジェクトを変更するための使用でなければ、「const」として宣言が必要

OPT.C.MISRAC.DoNotDefUndefMacrosInBlocks 

Do Not Def Undef Macros In Blocks 

DoNotDefUndefMacrosInBlock:MISRA 19.5:ブロック内でマクロの定義は禁止

OPT.C.MISRAC.DoNotUseAtofAtoiAtol 

Do Not Use Atof Atoi Atol 

DoNotUseAtofAtoiAtol:MISRA 20.10:「stdlib.h」のライブラリ関数 atof、atoi、atolの使用禁止

OPT.C.MISRAC.ExplicitSizeInExternArrays 

Explicit Size In Extern Arrays 

ExplicitSizeInExternArrays:MISRA 8.12:配列が外部リンクで宣言される場合、そのサイズは明示的に記述されるか初期化によって暗黙的に定義が必要

OPT.C.MISRAC.FunctionPointerCasts 

Function Pointer Casts 

FunctionPointerCasts:MISRA 11.1:関数へのポインタと整数型以外の型との間での変換は禁止

OPT.C.MISRAC.IfElseIfMustEndWithElse 

If Else If Must End With Else 

IfElseIfMustEndWithElse:MISRA 14.10:すべての「if...else if」構文はelse句での終了が必要

OPT.C.MISRAC.IfElseStatementsMustUseBraces 

If Else Statements Must Use Braces 

IfElseStatementsMustUseBraces:MISRA 14.9:「if-else」ステートメントでは中括弧の使用が必要

OPT.C.MISRAC.LogicalExpressionWithPrimaryExpressionOperands 

Logical Expression With Primary Expression Operands 

LogicalExpressionWithPrimaryExpressionOperands:MISRA 12.5:論理「&&」または「||」のオペランドは一次式であることが必要

OPT.C.MISRAC.LoopsShouldUseBraces 

Loops Should Use Braces 

LoopsShouldUseBraces:MISRA 14.8:ループは中括弧で本体を区切ることが必要

OPT.C.MISRAC.MaxTwoPointerIndirections 

Max Two Pointer Indirections 

MaxTwoPointerIndirections:MISRA 17.5:オブジェクトの宣言でポインタ参照は2レベル以下であることが必要

OPT.C.MISRAC.NoPointerArithmeticExceptArrayIndex 

No Pointer Arithmetic Except Array Index 

NoPointerArithmeticExceptArrayIndex:MISRA 17.4:配列のインデックス作成はポインタ演算の唯一の許可された形式であることが必要

OPT.C.MISRAC.NoSideEffectsInRightOperandOfLogicalOp 

No Side Effects In Right Operand Of Logical Op 

NoSideEffectsInRightOperandOfLogicalOp:MISRA 12.4:論理演算子「&&」または「||」の右辺に副作用を含む式は禁止

OPT.C.MISRAC.SwitchMustHaveBraces 

Switch Must Have Braces 

SwitchMustHaveBraces:MISRA 14.8:Switch文は中括弧の使用が必要

OPT.C.MISRAC.UseStaticForInternalLinkageIdentifiers 

Use Static For Internal Linkage Identifiers 

UseStaticForInternalLinkageIdentifiers:MISRA 8.11:内部リンケージを持つオブジェクトと関数の定義/宣言には静的なストレージ指定が必要

OPT.C.OneStatementPerLine 

One Statement Per Line

OneStatementPerLine:1行には1つのステートメント

OPT.C.OnlyOneReturn 

Only One Return

OnlyOneReturn:1つの関数にreturn文は1つ

OPT.C.SpecifyReturnType 

Specify Return Type 

SpecifyReturnType:関数の戻り値の型は明示的な指定が必要

OPT.C.VariablesNeverUsed 

Variables Never Used 

VariablesNeverUsed:使用されないローカル変数

OPT.C.AvoidGlobalVars 

Avoid Global Vars 

AvoidGlobalVars:グローバル変数の使用回避

OPT.C.AvoidLargeMethods 

Avoid Large Methods

AvoidLargeMethods:コード行数が多すぎる関数やメソッドの回避

OPT.C.AvoidVolatileVars 

Avoid Volatile Vars 

AvoidVolatileVars:volatile変数の使用禁止

OPT.C.CERTC.ARR30 

Do not form or use out-of-bounds pointers or array subscripts on arrays 

ARR30:配列の境界外へのポインタや配列添字の作成や使用の禁止

OPT.C.CERTC.ARR35 

Allowing loops to iterate beyond the end of an array 

ARR35:ループ処理で配列の終端を超えた反復の禁止

OPT.C.CERTC.ARR35_bis 

Allowing loops to iterate beyond the end of an array 

ARR35:ループ処理で配列の終端を超えた反復の禁止

OPT.C.CERTC.FIO33 

Detect and handle input/output errors 

FIO33:未定義の入出力エラーの検出と処理

OPT.C.CERTC.INT35 

Evaluate integer expressions 

INT35:整数式はより大きい精度で評価した後に、それと同じ精度との比較または代入が必要

OPT.C.CERTC.MEM08 

Use realloc() to resize dynamically allocated arrays 

MEM08:「realloc()」は動的に割り当てられた配列のサイズ変更にのみ使用

OPT.C.CERTC.MEM35 

Incorrect Calculation of Buffer Size 

MEM35:バッファサイズの間違った計算

OPT.C.CERTC.POS30 

Use the readlink() function properly 

POS30:「readlink()」の関数の適切な使用

OPT.C.CERTC.PRE01 

Use parentheses within macros around parameter names 

PRE01:マクロ内の引数名は括弧で囲む

OPT.C.CERTC.PRE10 

Wrap multistatement macros in a do-while loop 

PRE10:複数の文からなるマクロは「do-while」のループで包む

OPT.C.DontConvertConstToNonConst 

Dont Convert Const To Non Const 

DontConvertConstToNonConst:「const」の「non-const」への変換は禁止

OPT.C.IncludeHeadersOnly 

Include Headers Only 

IncludeHeadersOnly:ヘッダファイルでないファイルの「#include」での使用の回避

OPT.C.MISRAC.AllMacroIdentifiersDefinedBeforeUse 

All Macro Identifiers Defined Before Use 

AllMacroIdentifiersDefinedBeforeUse:MISRA 19.11:プリプロセッサ指示文中のマクロ識別子は「#ifdef」および「#ifndef」指示文と 「defined()」演算子を除いて使用前に定義が必要

OPT.C.MISRAC.ArithmeticOnPointersToArray 

Arithmetic On Pointers To Array 

ArithmeticOnPointersToArray:MISRA 17.1:ポインタ演算は配列または配列要素のポインタにのみに適用

OPT.C.MISRAC.AvoidAssignmentInBooleanExpressions 

Avoid Assignment In Boolean Expressions 

AvoidAssignmentInBooleanExpressions:MISRA 13.1:代入演算子は真偽値を返す式での使用は禁止

OPT.C.MISRAC.AvoidCommaOperator 

Avoid Comma Operator 

AvoidCommaOperator:MISRA 12.10:コンマ演算子の使用は禁止

OPT.C.MISRAC.AvoidContinueStatement 

Avoid Continue Statement 

AvoidContinueStatement:MISRA 14.5:Continue文の使用は禁止

OPT.C.MISRAC.AvoidGotoStatement 

Avoid Goto Statement 

AvoidGotoStatement:MISRA 14.4:Goto文の使用は禁止

OPT.C.MISRAC.AvoidNonNullStatementsWithoutEffect 

Avoid Non Null Statements Without Effect 

AvoidNonNullStatementsWithoutEffect:MISRA 14.2:空ではない行は、少なくとも 1 つの副作用もしくは制御フローを実行することが必要

OPT.C.MISRAC.AvoidNonStandardCharsInHeaderFilenames 

Avoid Non Standard Chars In Header Filenames 

AvoidNonStandardCharsInHeaderFilenames:MISRA 19.2:「#include」ディレクティブのヘッダファイル名に非標準文字の使用禁止

OPT.C.MISRAC.AvoidNonStandardEscapeSequences 

Avoid Non Standard Escape Sequences 

AvoidNonStandardEscapeSequences:MISRA 4.1:文字定数には、ISO C Standardで定義されているエスケープシーケンスのみ使用

OPT.C.MISRAC.AvoidOctalConstants 

Avoid Octal Constants 

AvoidOctalConstants:MISRA 7.1:8進数の定数(0以外)およびエスケープシーケンスの使用禁止

OPT.C.MISRAC.AvoidUndefDirective 

Avoid Undef Directive 

AvoidUndefDirective:MISRA 19.6:「#undef」の使用禁止

OPT.C.MISRAC.AvoidUnnecessaryExternalLinkage 

Avoid Unnecessary External Linkage 

AvoidUnnecessaryExternalLinkage:MISRA 8.10:外部リンケージが必要でない限り、ファイルスコープ内のオブジェクトまたは関数のすべての宣言と定義は内部リンケージを持つことが必要

OPT.C.MISRAC.ComparePointersWhenOnSameArray 

Compare Pointers When On Same Array 

ComparePointersWhenOnSameArray: MISRA 17.3: >、> [] {'MISRA-C': ['17.3']}

OPT.C.MISRAC.DeclareFunctionsAtFileScope 

Declare Functions At File Scope 

DeclareFunctionsAtFileScope:MISRA 8.6:関数はファイルスコープ内で宣言が必要

OPT.C.MISRAC.DeclareNoParametersFunctionAsVoid 

Declare No Parameters Function As Void 

DeclareNoParametersFunctionAsVoid:MISRA 16.5:引数のない関数は引数に「void」を宣言することが必要

OPT.C.MISRAC.DoNotMixIncDecOperatorsWithOtherOperators 

Do Not Mix Inc Dec Operators With Other Operators 

DoNotMixIncDecOperatorsWithOtherOperators:MISRA 12.13:インクリメント「++」およびデクリメント「--」演算子は、式の中で他の演算子との混在は禁止

OPT.C.MISRAC.DoNotModifyLoopVariableInBody 

Do Not Modify Loop Variable In Body 

DoNotModifyLoopVariableInBody:MISRA 13.6:反復回数のためにforループ内で使用されている変数の更新は禁止

OPT.C.MISRAC.DoNotUseAbortExitGetenvSystem 

Do Not Use Abort Exit Getenv System 

DoNotUseAbortExitGetenvSystem:MISRA 20.11:ライブラリ「stdlib.h」の「abort、exit、getenv、system」関数の使用禁止

OPT.C.MISRAC.DoNotUseErrno 

Do Not Use Errno 

DoNotUseErrno:MISRA 20.5:エラーコード変数「errno」の使用禁止

OPT.C.MISRAC.DoNotUseOffsetof 

Do Not Use Offsetof 

DoNotUseOffsetof:MISRA 20.6:「stddef.h」のマクロ「offsetof」の使用禁止

OPT.C.MISRAC.DoNotUseUnderlyingBitRepOfFloat 

Do Not Use Underlying Bit Rep Of Float 

DoNotUseUnderlyingBitRepOfFloat:MISRA 12.12:浮動小数点の基になるビット表現の使用禁止

OPT.C.MISRAC.DocumentPragmaDirectives 

Document Pragma Directives 

DocumentPragmaDirectives:MISRA 3.4:「#pragma」ディレクティブのすべての使用方法について説明文が必要

OPT.C.MISRAC.EncapsulateAssembly 

Encapsulate Assembly 

EncapsulateAssembly:MISRA 2.1:アセンブリ言語はカプセル化し分離することが必要

OPT.C.MISRAC.EvaluationOrderIndependence 

Evaluation Order Independence 

EvaluationOrderIndependence:MISRA 12.2:式の値は標準で許可されている評価の順序に関係なく同じになることが必要

OPT.C.MISRAC.FloatImplicitConversions 

Float Implicit Conversions 

FloatImplicitConversions:MISRA 10.2:浮動小数点型の式の値は、暗黙のうちに異なる型に変換することは禁止

OPT.C.MISRAC.ForControlExpressionWithFloatObjects 

For Control Expression With Float Objects 

ForControlExpressionWithFloatObjects:MISRA 13.4:for文の制御式には浮動小数点のオブジェクトの使用は禁止

OPT.C.MISRAC.ForLoopExpressionsForLoopControl 

For Loop Expressions For Loop Control 

ForLoopExpressionsForLoopControl:MISRA 13.5:for文の3つの式は、ループ制御のみに使用

OPT.C.MISRAC.FunctionsShouldHaveSingleReturnAtEnd 

Functions Should Have Single Return At End 

FunctionsShouldHaveSingleReturnAtEnd:MISRA 14.7:関数はその最後に1つだけの終了点を持つことが必要

OPT.C.MISRAC.IdentifiersMustNotHideOuterDefinitions 

Identifiers Must Not Hide Outer Definitions 

IdentifiersMustNotHideOuterDefinitions:MISRA 5.2:内部スコープの識別子は同じ名前を再利用して外部スコープの識別子を隠すことは禁止

OPT.C.MISRAC.IntegerImplicitConversions 

Integer Implicit Conversions 

IntegerImplicitConversions:MISRA 10.1:整数型の式の値は、暗黙のうちに異なる型に変換することは禁止

OPT.C.MISRAC.MacroExpansionCheck 

Macro Expansion Check 

MacroExpansionCheck:MISRA 19.4:Cのマクロは安全な構文にのみ展開することが必要

OPT.C.MISRAC.NameParametersInFunctionPrototypes 

Name Parameters In Function Prototypes 

NameParametersInFunctionPrototypes:MISRA 16.3:関数プロトタイプのすべてのパラメータに名前を付けることが必要

OPT.C.MISRAC.ObjectPointerCasts 

Object Pointer Casts 

ObjectPointerCasts:MISRA 11.2:オブジェクトへのポインターと整数型以外の型、オブジェクト型への別のポインター、または「void」へのポインターとの間で変換の実行禁止

OPT.C.MISRAC.ProperCastComplexFloatExpression 

Proper Cast Complex Float Expression 

ProperCastComplexFloatExpression:MISRA 10.4:浮動小数点型の複合式の値は、より狭いか同じサイズの浮動小数点型にのみキャストすることが必要

OPT.C.MISRAC.ProperCastComplexIntegerExpression 

Proper Cast Complex Integer Expression 

ProperCastComplexIntegerExpression:MISRA 10.3:整数型の複雑な式の値は、式の基になる型よりも精度が低い同じ符号型の型にのみにキャストすることが必要

OPT.C.MISRAC.SameFunctionDeclarationAndDefinition 

Same Function Declaration And Definition 

SameFunctionDeclarationAndDefinition:MISRA 8.3:各関数のパラメータについて、宣言と定義における型は同一でなければならず、戻り値の型も同一であることが必要

OPT.C.MISRAC.SizeofExprWithSideEffects 

Sizeof Expr With Side Effects 

SizeofExprWithSideEffects:MISRA 12.3:「sizeof」演算子は、副作用を含む式では使用禁止

OPT.C.MISRAC.SwitchWithDefault 

Switch With Default 

SwitchWithDefault:MISRA 15.3:default句のないswitch文の回避

OPT.C.MISRAC.SwitchWithoutCaseShouldBeRefactored 

Switch Without Case Should Be Refactored 

SwitchWithoutCaseShouldBeRefactored:MISRA 15.5:case句のないswitch文は作り直すことが必要

OPT.C.MISRAC.TagUniqueIdentifier 

Tag Unique Identifier 

TagUniqueIdentifier:MISRA 5.4:タグ名は一意な識別子であることが必要

OPT.C.MISRAC.TypedefUniqueIdentifier 

Typedef Unique Identifier 

TypedefUniqueIdentifier:MISRA 5.3:「typedef」名は一意の識別子であることが必要

OPT.C.MISRAC.UnsignedBitwiseOperands 

Unsigned Bitwise Operands 

UnsignedBitwiseOperands:MISRA 12.7:ビット演算子は、基になる型が符号付きであるオペランドには使用禁止

OPT.C.PotentialInfiniteLoop 

Potential Infinite Loop

PotentialInfiniteLoop:到達不可能な終了条件を持つルール(無限ループ)

OPT.C.RemoveUnusedParam 

Remove Unused Param 

RemoveUnusedParam:関数内の未使用のパラメータは削除

OPT.C.PORT.ObsoleteFunction 

Obsolete Function 

ObsoleteFunction:非推奨または廃止された関数の使用禁止

OPT.C.SEC.HardcodedUsernamePassword 

Hardcoded Username Password

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

OPT.C.SEC.InsecureRandomness 

Insecure Randomness

InsecureRandomnes:安全でない標準的な擬似乱数生成器