HKMC C Secure Coding Standard for Automotive Development

Rule Checker name and description
C-ARR-001

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.TAINTED.INDEX_ACCESS  Use of Unvalidated Integer as Array Index

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

C-ARR-003

MISRA.PTR.ARITH  Pointer is used in arithmetic or array index expression

C-ARR-004

MISRA.PTR.ARITH.2012  Pointer is used in arithmetic expression

C-ARR-006

CERT.ARR.PTR.ARITH  Pointer is used in arithmetic expression

C-ARR-008

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

CXX.SUSPICIOUS_INDEX_CHECK  Suspicious use of index after boundary check

CXX.SUSPICIOUS_INDEX_CHECK.CALL  Suspicious use of index in a function call after a boundary check

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  Suspicious use of index after index check for zero

RABV.CHECK  Suspicious use of index before boundary check

RN.INDEX  Suspicious use of index before negative check

SV.STRBO.BOUND_SPRINTF  Buffer Overflow in Bound sprintf

SV.STRBO.UNBOUND_SPRINTF  Buffer Overflow in Unbound sprintf

C-ARR-009

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

C-ARR-010

MISRA.FUNC.UNMATCHED.PARAMS  Number of formal and actual parameters passed to function do not match

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  Incompatible type of a print function parameter

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a print function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  Incompatible type of a scan function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a scan function parameter

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  Too few arguments in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  Too many arguments in a scan function call

C-ARR-011

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

C-CON-004

CERT.CONC.LIB_FUNC_USE  Avoid race conditions when using library functions

C-CON-006

CONC.DL  Deadlock

C-CON-007

CERT.CONC.WAKE_IN_LOOP_C  Wrap functions that can spuriously wake up in a loop

C-CON-008

MISRA.STDLIB.SIGNAL  Use of the signal handling facilities of signal.h

C-CON-009

CERT.CONC.UNSAFE_COND_VAR_C  Preserve thread safety and liveness when using condition variables

C-CON-011

CERT.CONC.ATOMIC_TWICE_EXPR  Do not refer to an atomic variable twice in an expression

C-DCI-001

LOCRET.ARG  Function returns address of local variable

LOCRET.GLOB  Function returns address of local variable

LOCRET.RET  Function returns address of local variable

C-DCI-002

MISRA.FUNC.STATIC.REDECL  Function or object redeclaration does not include 'static' modifier

C-DCI-003

MISRA.DEFINE.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a macro

MISRA.STDLIB.WRONGNAME  Reused name of standard library macro, object or function

MISRA.STDLIB.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a language entity

C-DCI-004

CERT.STRUCT.FLEXIBLE_ARRAY_MEMBER  Use the correct syntax when declaring a flexible array member

C-DCI-005

PORTING.STORAGE.STRUCT  Byte position of elements in a structure could depend on alignment and packing attributes.

C-DCI-006

MISRA.FUNC.NOPROT.DEF.2012  Function has a definition but no prototype

MISRA.FUNC.PARAMS.IDENT  Identifiers used in declaration and definition of function are not identical

C-DCI-007

CERT.DCL.SWITCH.VAR_BEFORE_CASE  Do not declare variables inside a switch statement before the first case label

C-DCI-009

MISRA.SWITCH.NODEFAULT  No default clause at the end of a switch statement

C-DCI-010

MISRA.SWITCH.NO_BREAK  No break or throw statement at the end of switch-clause

C-DCI-011

MISRA.EXPR.PARENS.2012  The precedence of operators within expressions should be made explicit.

MISRA.EXPR.PARENS.INSUFFICIENT  Limited dependence required for operator precedence rules in expressions

C-DCI-012

RN.INDEX  Suspicious use of index before negative check

C-ENV-001

MISRA.STDLIB.CTYPE.RANGE.2012_AMD1  Any value passed to a function in ctype.h shall be representable as an unsigned char or be the value EOF

MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1  The pointer returned by the Standard Library functions asctime and similar shall not be used following a subsequent call to the same function

MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1  The pointers returned by the Standard Library functions localeconv, getenv, setlocale or, strerror shall only be used as if they have pointer to const-qualified type

C-ENV-003

CERT.EXIT.HANDLER_TERMINATE  All exit handlers must return normally

C-ENV-004

MISRA.STDLIB.SYSTEM.2012_AMD2  Use of 'system' from library stdlib.h

C-ERR-001

CXX.ERRNO.INCORRECTLY_CHECKED  Errno condition check not required after calling library function

CXX.ERRNO.NOT_CHECKED  Errno condition check is missing after calling library function

CXX.ERRNO.NOT_SET  Errno is not reset to zero before calling library function

C-ERR-002

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

C-ERR-003

MISRA.STDLIB.ATOI  Use of 'atof', 'atoi' or 'atol' from library stdlib.h

C-EXP-001

MISRA.FUNC.UNUSEDRET.2012  The return value of a non-void function shall be used.

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

C-EXP-002

MISRA.INCR_DECR.OTHER  Increment or decrement operator is mixed with other operators in expression

MISRA.INCR_DECR.SIDEEFF.2012  A full expression containing an increment (++) or decrement (--) operator should have no other potential side effects other than that caused by the increment or decrement operator

MISRA.LOGIC.SIDEEFF  Right operand in a logical 'and' or 'or' expression contains side effects

MISRA.SHIFT.RANGE.2012  Right operand of shift operation is out of range - greater or equal to the essential type size of left operand, or is negative

PORTING.VAR.EFFECTS  Variable used twice in one expression where one usage is subject to side-effects

C-EXP-003

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.ARRAY.MIGHT  Uninitialized Array - possible

UNINIT.STACK.ARRAY.MUST  Uninitialized Array

UNINIT.STACK.ARRAY.PARTIAL.MUST  Partially Uninitialized Array

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MUST  Uninitialized Variable

C-EXP-004

SV.TAINTED.CALL.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.DEREF  Dereference Of An Unvalidated Pointer

C-EXP-005

ASSIGCOND.CALL  Assignment in condition (call)

ASSIGCOND.GEN  Assignment in condition

C-EXP-006

EFFECT  Statement has no effect

C-EXP-007

SV.TAINTED.CALL.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition through a Function Call

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

C-EXP-009

NPD.CHECK.CALL.MIGHT  Pointer may be passed to function that can dereference it after it was positively checked for NULL

NPD.CHECK.CALL.MUST  Pointer will be passed to function that may dereference it after it was positively checked for NULL

NPD.CHECK.MIGHT  Pointer may be dereferenced after it was positively checked for NULL

NPD.CHECK.MUST  Pointer will be dereferenced after it was positively checked for NULL

NPD.CONST.CALL  NULL is passed to function that can dereference it

NPD.CONST.DEREF  NULL is dereferenced

NPD.FUNC.CALL.MIGHT  Result of function that may return NULL may be passed to another function that may dereference it

NPD.FUNC.CALL.MUST  Result of function that may return NULL will be passed to another function that may dereference it

NPD.FUNC.MIGHT  Result of function that can return NULL may be dereferenced

NPD.FUNC.MUST  Result of function that may return NULL will be dereferenced

NPD.GEN.CALL.MIGHT  Null pointer may be passed to function that may dereference it

NPD.GEN.CALL.MUST  Null pointer will be passed to function that may dereference it

NPD.GEN.MIGHT  Null pointer may be dereferenced

NPD.GEN.MUST  Null pointer will be dereferenced

RNPD.CALL  Suspicious dereference of pointer in function call before NULL check

RNPD.DEREF  Suspicious dereference of pointer before NULL check

C-EXP-010

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012  Cast between a pointer to object type and a pointer to a different object type

MISRA.CAST.PTR.UNRELATED  Object of pointer type cast to unrelated type

MISRA.CAST.PTR_TO_INT  Cast between a pointer and an integral type

PORTING.CAST.PTR  Cast between types that are not both pointers or not pointers

PORTING.CAST.PTR.FLTPNT  Cast of a pointer to a floating point expression to a non floating point type pointer

PORTING.CAST.PTR.SIZE  Attempt to cast an expression to a type of a potentially incompatible size

C-EXP-011

MISRA.CAST.FUNC_PTR.2012  Conversion performed between a pointer to a function and another incompatible type

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012  Conversion performed between a pointer to an incomplete type and a different type

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012  A cast between a pointer to object and a non-integer arithmetic type

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012  Cast between a pointer to object type and a pointer to a different object type

C-EXP-012

CERT.STR.ARG.CONST_TO_NONCONST  Do not pass a const char pointer to a non-const char pointer argument

CERT.STR.ASSIGN.CONST_TO_NONCONST  Do not assign a const char pointer to a non-const char pointer

C-EXP-013

CERT.MEMCMP.PADDED_DATA  Do not compare padding data

C-EXP-014

MISRA.TYPE.RESTRICT.QUAL.2012  The restrict type qualifier shall not be used

C-EXP-015

MISRA.SIZEOF.SIDE_EFFECT  Operand of sizeof has side effects

C-EXP-016

ASSIGCOND.CALL  Assignment in condition (call)

ASSIGCOND.GEN  Assignment in condition

MISRA.ASSIGN.COND  Assignment operator is used in a condition

C-EXP-017

MISRA.LOGIC.OPERATOR.NOT_BOOL  Operand of non-logical operator is effectively boolean

C-FIO-001

SV.TAINTED.FMTSTR  Use of Unvalidated Data in a Format String

C-FIO-002

CWARN.CMPCHR.EOF  A 'char' expression compared with EOF constant

C-FIO-007

RH.LEAK  Resource leak

C-FIO-008

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  Incompatible type of a print function parameter

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a print function parameter

SV.FMT_STR.PRINT_IMPROP_LENGTH  Improper use of length modifier in a print function call

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  Too few arguments in a print function call

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  Too many arguments in a print function call

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  Incompatible type of a scan function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a scan function parameter

SV.FMT_STR.SCAN_IMPROP_LENGTH  Improper use of length modifier in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  Too few arguments in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  Too many arguments in a scan function call

SV.FMT_STR.UNKWN_FORMAT  Unknown format specifier in a print function call

C-FIO-009

SV.TOCTOU.FILE_ACCESS  Time of Creation/Time of Use Race condition in File Access

C-FLP-001

MISRA.FOR.COUNTER.FLT  For loop counter has a floating point type

C-FLP-002

MISRA.CAST.FLOAT.WIDER  Cast of floating point expression to a wider floating point type

MISRA.CAST.FLOAT_INT  Cast of floating point expression to integral type

MISRA.CAST.INT_FLOAT  Cast of integral expression to floating point type

MISRA.CONV.FLOAT  Implicit floating-point conversion

C-FLP-003

PORTING.CAST.FLTPNT  Cast of a floating point expression to a non floating point type

C-INT-001

MISRA.CAST.INT  Non-trivial integer expression is cast to a wider type, or type with a different signedness

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

MISRA.CONV.INT.SIGN  Implicit integral conversion changes signedness

MISRA.CVALUE.IMPL.CAST  The value of an expression implicitly converted to a different type

MISRA.UMINUS.UNSIGNED  Operand of unary minus is unsigned

PRECISION.LOSS  Loss of Precision

C-INT-002

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

C-INT-003

PRECISION.LOSS  Loss of Precision

PRECISION.LOSS.CALL  Loss of Precision during function call

C-INT-004

CWARN.NOEFFECT.OUTOFRANGE  Value outside of range

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

C-INT-005

DBZ.CONST  Division by a zero constant occurs

DBZ.CONST.CALL  The value '0' is passed to function that can use this value as divisor

DBZ.GENERAL  Division by zero might occur

DBZ.GENERAL.FLOAT  Division by floating-point zero might occur

DBZ.ITERATOR  Division by zero might occur in a loop iterator

DBZ.ITERATOR.CALL  Division by zero might occur in a function call

DBZ.ITERATOR.FLOAT  Division by zero might occur in a loop iterator

C-INT-006

MISRA.SHIFT.RANGE.2012  Right operand of shift operation is out of range - greater or equal to the essential type size of left operand, or is negative

C-INT-007

NUM.OVERFLOW  Possible Overflow

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

C-INT-008

MISRA.CAST.OBJ_PTR_TO_INT.2012  Conversion performed between a pointer to an object and an integer type

C-INT-009

CXX.SIZEOF.CSTRING  Use of sizeof on char* may be misleading

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

C-MEM-001

UFM.DEREF.MIGHT  Use of free memory (access) - possible

UFM.DEREF.MUST  Use of Freed Memory by Pointer

UFM.FFM.MIGHT  Use of free memory (double free) - possible

UFM.FFM.MUST  Freeing Freed Memory

UFM.RETURN.MIGHT  Use of freed memory (return) - possible

UFM.RETURN.MUST  Use of Freed Memory on Return

UFM.USE.MIGHT  Use of free memory - possible

UFM.USE.MUST  Use of Freed Memory

C-MEM-002

CL.FFM.ASSIGN  Use of free memory (double free) - no operator=

CL.FFM.COPY  Use of free memory (double free) - no copy constructor

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

C-MEM-004

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

C-MEM-005

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

SV.TAINTED.ALLOC_SIZE  Use of Unvalidated Integer in Memory Allocation

C-MEM-007

CXX.REALLOC  Use of realloc() should be avoided

C-MSC-003

CERT.MSC.STD_RAND_CALL  Do not use std::rand() for generating pseudorandom numbers

C-MSC-004

CERT.MSC.SEED_RANDOM  Properly seed pseudorandom number generators

C-MSC-005

CERT.MSC.ASCTIME  Do not pass invalid data to the asctime() function

C-MSC-006

FUNCRET.GEN  Non-void function does not return value

FUNCRET.IMPLICIT  Non-void function implicitly returning int does not return value

C-MSC-008

VA.LIST.INDETERMINATE  Attempt to call va_arg() on a va_list that has an indeterminate value

C-MSC-010

CXX.GETLOGIN  Do not use getlogin in multithreaded applications

C-MSC-013

RCA  Risky cryptographic algorithm used

C-MSC-014

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

C-MSC-015

CERT.MSC.SEED_RANDOM  Properly seed pseudorandom number generators

C-POS-002

CXX.POSIX.VFORK  Do not use vfork()

C-POS-003

CERT.PUTENV.AUTO_VARIABLE  Do not call putenv() with a pointer to an automatic variable as the argument

CXX.PUTENV.LOCAL.PTR  Do not pass a pointer to a local variable in the putenv()

C-POS-005

BYTEORDER.HTON.SEND  Missed conversion from host to network byte order

BYTEORDER.HTON.WRITE  Missed conversion from host to network byte order

BYTEORDER.NTOH.READ  Missed conversion from network to host byte order

BYTEORDER.NTOH.RECV  Missed conversion from network to host byte order

C-POS-006

MISRA.INCL.SIGNAL.2012  The standard header file signal.h shall not be used

C-POS-008

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

C-POS-009

CONC.DBL_LOCK  Double Lock

CONC.DBL_UNLOCK  Double Unlock

CONC.DL  Deadlock

CONC.NO_UNLOCK  Missing unlock for variable

C-POS-011

MISRA.IF.NO_COMPOUND  The body of if/else statement is not a compound statement

C-POS-012

CWARN.NOEFFECT.SELF_ASSIGN  A variable is assigned to self

CWARN.NOEFFECT.UCMP.GE  Comparison of unsigned value against 0 is always true

CWARN.NOEFFECT.UCMP.GE.MACRO  Comparison of unsigned value against 0 within a macro is always true

CWARN.NOEFFECT.UCMP.LT  Comparison of unsigned value against 0 is always false

CWARN.NOEFFECT.UCMP.LT.MACRO  Comparison of unsigned value against 0 within a macro is always false

CWARN.NULLCHECK.FUNCNAME  Function address was directly compared against 0

EFFECT  Statement has no effect

INVARIANT_CONDITION.GEN  Invariant expression in a condition

INVARIANT_CONDITION.UNREACH  Invariant expression in a condition

LA_UNUSED  Label unused

MISRA.STMT.NO_EFFECT  The statement has no side effects, and does not change control flow

UNREACH.GEN  Unreachable code

UNREACH.RETURN  Unreachable Void Return

UNREACH.SIZEOF  Architecture-related unreachable code

VA_UNUSED.GEN  Value is Never Used after Assignment

VA_UNUSED.INIT  Value is Never Used after Initialization

C-PRE-002

PORTING.VAR.EFFECTS  Variable used twice in one expression where one usage is subject to side-effects

C-PRE-003

MISRA.EXPANSION.DIRECTIVE  Directive-like tokens within a macro argument

C-STR-001

CERT.STR.ARG.CONST_TO_NONCONST  Do not pass a const char pointer to a non-const char pointer argument

CERT.STR.ASSIGN.CONST_TO_NONCONST  Do not assign a const char pointer to a non-const char pointer

C-STR-002

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

SV.FMT_STR.BAD_SCAN_FORMAT  Input format specifier error

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

C-STR-003

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.STRBO.BOUND_COPY.UNTERM  Possible Buffer Overflow in Following String Operations

C-STR-004

AUTOSAR.STDLIB.CCTYPE.UCHAR  Arguments to character-handling functions defined in <cctype> shall be representable as an unsigned char

MISRA.ETYPE.ASSIGN.2012  Assignment to an object of a narrower essential type or a different essential type category

C-STR-005

CXX.DIFF.WIDTH.STR_AND_FUNC  Implicit cast between narrow and wide character string while calling function

C-STR-006

CXX.MALLOC.WCHAR_LENGTH  Use (wsclen()+1*sizeof(wchar_t)) when allocating memory with malloc for wchar_t buffers

HKMC C-ARR-001 (High): Ensure that the index is within the valid range for memory read and write operations of the array[AP

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.TAINTED.INDEX_ACCESS  Use of Unvalidated Integer as Array Index

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

HKMC C-ARR-001 (高): インデックスが配列のメモリ読み取りと書き込み操作の有効な範囲内にあることを確認してください [AP

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.TAINTED.INDEX_ACCESS  Use of Unvalidated Integer as Array Index

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

HKMC C-ARR-003 (Middle): Do not subtract or compare two pointers that do not reference the same array[AP

MISRA.PTR.ARITH  Pointer is used in arithmetic or array index expression

HKMC C-ARR-003 (中): 同じ配列を参照していない 2 つのポインターを減算または比較しないでください [AP

MISRA.PTR.ARITH  Pointer is used in arithmetic or array index expression

HKMC C-ARR-004 (Middle): Do not add or subtract an integer to a pointer to a non-array object[AP

MISRA.PTR.ARITH.2012  Pointer is used in arithmetic expression

HKMC C-ARR-004 (中): 配列以外のオブジェクトを指すポインターに整数を加算または減算しないでください [AP

MISRA.PTR.ARITH.2012  Pointer is used in arithmetic expression

HKMC C-ARR-006 (High): Do not add and subtract integers resized automatically in pointer[AP

CERT.ARR.PTR.ARITH  Pointer is used in arithmetic expression

HKMC C-ARR-006 (高): ポインターで自動的にサイズ変更された整数を加算および減算しないでください [AP

CERT.ARR.PTR.ARITH  Pointer is used in arithmetic expression

HKMC C-ARR-008 (High): Write before buffer start

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

CXX.SUSPICIOUS_INDEX_CHECK  Suspicious use of index after boundary check

CXX.SUSPICIOUS_INDEX_CHECK.CALL  Suspicious use of index in a function call after a boundary check

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  Suspicious use of index after index check for zero

RABV.CHECK  Suspicious use of index before boundary check

RN.INDEX  Suspicious use of index before negative check

SV.STRBO.BOUND_SPRINTF  Buffer Overflow in Bound sprintf

SV.STRBO.UNBOUND_SPRINTF  Buffer Overflow in Unbound sprintf

HKMC C-ARR-008 (高): バッファ開始前の書き込み

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

CXX.SUSPICIOUS_INDEX_CHECK  Suspicious use of index after boundary check

CXX.SUSPICIOUS_INDEX_CHECK.CALL  Suspicious use of index in a function call after a boundary check

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  Suspicious use of index after index check for zero

RABV.CHECK  Suspicious use of index before boundary check

RN.INDEX  Suspicious use of index before negative check

SV.STRBO.BOUND_SPRINTF  Buffer Overflow in Bound sprintf

SV.STRBO.UNBOUND_SPRINTF  Buffer Overflow in Unbound sprintf

HKMC C-ARR-009 (Low): Buffer access using source buffer size

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

HKMC C-ARR-009 (低): ソースバッファサイズを使用したバッファアクセス

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

HKMC C-ARR-010 (Middle): Attention not to include invalid arguments when calling a function[MCU]

MISRA.FUNC.UNMATCHED.PARAMS  Number of formal and actual parameters passed to function do not match

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  Incompatible type of a print function parameter

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a print function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  Incompatible type of a scan function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a scan function parameter

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  Too few arguments in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  Too many arguments in a scan function call

HKMC C-ARR-010 (中): 関数を呼び出すときに無効な引数を含めないための注意 [MCU]

MISRA.FUNC.UNMATCHED.PARAMS  Number of formal and actual parameters passed to function do not match

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  Incompatible type of a print function parameter

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a print function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  Incompatible type of a scan function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a scan function parameter

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  Too few arguments in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  Too many arguments in a scan function call

HKMC C-ARR-011 (High): Attention for incorrect judgement of return value by function

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

HKMC C-ARR-011 (高): 関数による戻り値の誤判定に関する注意

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

HKMC C-CON-004 (Middle): Avoid race conditions when using library functions

CERT.CONC.LIB_FUNC_USE  Avoid race conditions when using library functions

HKMC C-CON-004 (中): ライブラリ関数を使用するときに競合状態を避けます

CERT.CONC.LIB_FUNC_USE  Avoid race conditions when using library functions

HKMC C-CON-006 (Low): Lock according to predefine order to avoid deadlock

CONC.DL  Deadlock

HKMC C-CON-006 (低): デッドロックを回避するために事前定義された順序に従ってロックします

CONC.DL  Deadlock

HKMC C-CON-007 (Low): Wrapping of functions that can spuriously wake up in a loop

CERT.CONC.WAKE_IN_LOOP_C  Wrap functions that can spuriously wake up in a loop

HKMC C-CON-007 (低): ループ内で擬似的に起動する可能性のある関数のラッピング

CERT.CONC.WAKE_IN_LOOP_C  Wrap functions that can spuriously wake up in a loop

HKMC C-CON-008 (Low): Do not call signal() in a multithreaded program

MISRA.STDLIB.SIGNAL  Use of the signal handling facilities of signal.h

HKMC C-CON-008 (低): マルチスレッドプログラムで signal() を呼び出さないでください

MISRA.STDLIB.SIGNAL  Use of the signal handling facilities of signal.h

HKMC C-CON-009 (Low): Preserve thread safety and liveness when using condition variables

CERT.CONC.UNSAFE_COND_VAR_C  Preserve thread safety and liveness when using condition variables

HKMC C-CON-009 (低): 条件変数を使用するときにスレッドセーフと活性を維持します

CERT.CONC.UNSAFE_COND_VAR_C  Preserve thread safety and liveness when using condition variables

HKMC C-CON-011 (Middle): Do not reference to an atomic variable twice in an expression

CERT.CONC.ATOMIC_TWICE_EXPR  Do not refer to an atomic variable twice in an expression

HKMC C-CON-011 (中): 1 つの式でアトミック変数を 2 回参照しないでください

CERT.CONC.ATOMIC_TWICE_EXPR  Do not refer to an atomic variable twice in an expression

HKMC C-DCI-001 (High): Do not returning and assigning local variable address

LOCRET.ARG  Function returns address of local variable

LOCRET.GLOB  Function returns address of local variable

LOCRET.RET  Function returns address of local variable

HKMC C-DCI-001 (高): ローカル変数アドレスを戻したり、代入したりしないでください

LOCRET.ARG  Function returns address of local variable

LOCRET.GLOB  Function returns address of local variable

LOCRET.RET  Function returns address of local variable

HKMC C-DCI-002 (Middle): Do not declare same variable for internal and external linkage

MISRA.FUNC.STATIC.REDECL  Function or object redeclaration does not include 'static' modifier

HKMC C-DCI-002 (中): 内部と外部のリンケージに同じ変数を宣言しないでください

MISRA.FUNC.STATIC.REDECL  Function or object redeclaration does not include 'static' modifier

HKMC C-DCI-003 (Low): Do not declare or define a reserved identifier

MISRA.DEFINE.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a macro

MISRA.STDLIB.WRONGNAME  Reused name of standard library macro, object or function

MISRA.STDLIB.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a language entity

HKMC C-DCI-003 (低): 予約済みの識別子を宣言または定義しないでください

MISRA.DEFINE.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a macro

MISRA.STDLIB.WRONGNAME  Reused name of standard library macro, object or function

MISRA.STDLIB.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a language entity

HKMC C-DCI-004 (Low): Need to use the correct syntax when declaring a flexible array

CERT.STRUCT.FLEXIBLE_ARRAY_MEMBER  Use the correct syntax when declaring a flexible array member

HKMC C-DCI-004 (低): 柔軟な配列を宣言するときに正しい構文を使用する必要があります

CERT.STRUCT.FLEXIBLE_ARRAY_MEMBER  Use the correct syntax when declaring a flexible array member

HKMC C-DCI-005 (Low): Need to avoid information leakage when passing a structure across a trust boundary

PORTING.STORAGE.STRUCT  Byte position of elements in a structure could depend on alignment and packing attributes.

HKMC C-DCI-005 (低): 信頼境界を越えて構造を渡すときに情報のリークを避ける必要があります

PORTING.STORAGE.STRUCT  Byte position of elements in a structure could depend on alignment and packing attributes.

HKMC C-DCI-006 (Low): Do not declare of incompatible function or object

MISRA.FUNC.NOPROT.DEF.2012  Function has a definition but no prototype

MISRA.FUNC.PARAMS.IDENT  Identifiers used in declaration and definition of function are not identical

HKMC C-DCI-006 (低): 互換性のない関数またはオブジェクトを宣言しないでください

MISRA.FUNC.NOPROT.DEF.2012  Function has a definition but no prototype

MISRA.FUNC.PARAMS.IDENT  Identifiers used in declaration and definition of function are not identical

HKMC C-DCI-007 (Middle): Do not declare variable in a switch statement before the first case label

CERT.DCL.SWITCH.VAR_BEFORE_CASE  Do not declare variables inside a switch statement before the first case label

HKMC C-DCI-007 (中): switch ステートメントで最初の case ラベルの前に変数を宣言しないでください

CERT.DCL.SWITCH.VAR_BEFORE_CASE  Do not declare variables inside a switch statement before the first case label

HKMC C-DCI-009 (Middle): Do not miss default case in switch statement

MISRA.SWITCH.NODEFAULT  No default clause at the end of a switch statement

HKMC C-DCI-009 (中): switch ステートメントでデフォルトの case を欠かさないでください

MISRA.SWITCH.NODEFAULT  No default clause at the end of a switch statement

HKMC C-DCI-010 (Middle): Do not omit break in switch statement

MISRA.SWITCH.NO_BREAK  No break or throw statement at the end of switch-clause

HKMC C-DCI-010 (中): switch ステートメントで break を省略しないでください

MISRA.SWITCH.NO_BREAK  No break or throw statement at the end of switch-clause

HKMC C-DCI-011 (High): Need explicit handling of operator precedence using parentheses

MISRA.EXPR.PARENS.2012  The precedence of operators within expressions should be made explicit.

MISRA.EXPR.PARENS.INSUFFICIENT  Limited dependence required for operator precedence rules in expressions

HKMC C-DCI-011 (高): 括弧を使用して演算子の優先順位を明示的に処理する必要があります

MISRA.EXPR.PARENS.2012  The precedence of operators within expressions should be made explicit.

MISRA.EXPR.PARENS.INSUFFICIENT  Limited dependence required for operator precedence rules in expressions

HKMC C-DCI-012 (High): Do not compare numerical ranges without minimum check

RN.INDEX  Suspicious use of index before negative check

HKMC C-DCI-012 (高): 最小チェックなしで数値範囲を比較しないでください

RN.INDEX  Suspicious use of index before negative check

HKMC C-ENV-001 (Low): Do not modify the object referenced by the return value of certain functions

MISRA.STDLIB.CTYPE.RANGE.2012_AMD1  Any value passed to a function in ctype.h shall be representable as an unsigned char or be the value EOF

MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1  The pointer returned by the Standard Library functions asctime and similar shall not be used following a subsequent call to the same function

MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1  The pointers returned by the Standard Library functions localeconv, getenv, setlocale or, strerror shall only be used as if they have pointer to const-qualified type

HKMC C-ENV-001 (低): 特定の関数の戻り値で参照されるオブジェクトを変更しないでください

MISRA.STDLIB.CTYPE.RANGE.2012_AMD1  Any value passed to a function in ctype.h shall be representable as an unsigned char or be the value EOF

MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1  The pointer returned by the Standard Library functions asctime and similar shall not be used following a subsequent call to the same function

MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1  The pointers returned by the Standard Library functions localeconv, getenv, setlocale or, strerror shall only be used as if they have pointer to const-qualified type

HKMC C-ENV-003 (Middle): All exit handlers must return normally

CERT.EXIT.HANDLER_TERMINATE  All exit handlers must return normally

HKMC C-ENV-003 (中): すべての exit ハンドラーは正常に戻る必要があります

CERT.EXIT.HANDLER_TERMINATE  All exit handlers must return normally

HKMC C-ENV-004 (High): Do not call system()

MISRA.STDLIB.SYSTEM.2012_AMD2  Use of 'system' from library stdlib.h

HKMC C-ENV-004 (高): system() を呼び出さないでください

MISRA.STDLIB.SYSTEM.2012_AMD2  Use of 'system' from library stdlib.h

HKMC C-ERR-001 (Middle): Attention when calling a library related the errno

CXX.ERRNO.INCORRECTLY_CHECKED  Errno condition check not required after calling library function

CXX.ERRNO.NOT_CHECKED  Errno condition check is missing after calling library function

CXX.ERRNO.NOT_SET  Errno is not reset to zero before calling library function

HKMC C-ERR-001 (中): errno に関連するライブラリを呼び出す際の注意

CXX.ERRNO.INCORRECTLY_CHECKED  Errno condition check not required after calling library function

CXX.ERRNO.NOT_CHECKED  Errno condition check is missing after calling library function

CXX.ERRNO.NOT_SET  Errno is not reset to zero before calling library function

HKMC C-ERR-002 (High): Detect and handle errors of standard library

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

HKMC C-ERR-002 (高): 標準ライブラリのエラーを検出および処理します

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

HKMC C-ERR-003 (Middle): Detect errors when converting a string to a number

MISRA.STDLIB.ATOI  Use of 'atof', 'atoi' or 'atol' from library stdlib.h

HKMC C-ERR-003 (中): 文字列を数値に変換するときにエラーを検出します

MISRA.STDLIB.ATOI  Use of 'atof', 'atoi' or 'atol' from library stdlib.h

HKMC C-EXP-001 (Middle): Do not ignore return value by functions

MISRA.FUNC.UNUSEDRET.2012  The return value of a non-void function shall be used.

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

HKMC C-EXP-001 (中): 関数による戻り値を無視しないでください

MISRA.FUNC.UNUSEDRET.2012  The return value of a non-void function shall be used.

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

HKMC C-EXP-002 (Middle): Attention to the order of calculation(evaluation) that causes the side effects

MISRA.INCR_DECR.OTHER  Increment or decrement operator is mixed with other operators in expression

MISRA.INCR_DECR.SIDEEFF.2012  A full expression containing an increment (++) or decrement (--) operator should have no other potential side effects other than that caused by the increment or decrement operator

MISRA.LOGIC.SIDEEFF  Right operand in a logical 'and' or 'or' expression contains side effects

MISRA.SHIFT.RANGE.2012  Right operand of shift operation is out of range - greater or equal to the essential type size of left operand, or is negative

PORTING.VAR.EFFECTS  Variable used twice in one expression where one usage is subject to side-effects

HKMC C-EXP-002 (中): 副作用を引き起こす計算 (評価) の順番に関する注意

MISRA.INCR_DECR.OTHER  Increment or decrement operator is mixed with other operators in expression

MISRA.INCR_DECR.SIDEEFF.2012  A full expression containing an increment (++) or decrement (--) operator should have no other potential side effects other than that caused by the increment or decrement operator

MISRA.LOGIC.SIDEEFF  Right operand in a logical 'and' or 'or' expression contains side effects

MISRA.SHIFT.RANGE.2012  Right operand of shift operation is out of range - greater or equal to the essential type size of left operand, or is negative

PORTING.VAR.EFFECTS  Variable used twice in one expression where one usage is subject to side-effects

HKMC C-EXP-003 (High): Do not reference(access

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.ARRAY.MIGHT  Uninitialized Array - possible

UNINIT.STACK.ARRAY.MUST  Uninitialized Array

UNINIT.STACK.ARRAY.PARTIAL.MUST  Partially Uninitialized Array

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MUST  Uninitialized Variable

HKMC C-EXP-003 (高): 初期化されていないメモリを参照 (アクセス、読み取り) しないでください

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.ARRAY.MIGHT  Uninitialized Array - possible

UNINIT.STACK.ARRAY.MUST  Uninitialized Array

UNINIT.STACK.ARRAY.PARTIAL.MUST  Partially Uninitialized Array

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MUST  Uninitialized Variable

HKMC C-EXP-004 (Middle): Attention not to reference abnormal pointer

SV.TAINTED.CALL.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.DEREF  Dereference Of An Unvalidated Pointer

HKMC C-EXP-004 (中): 異常なポインターを参照しないための注意

SV.TAINTED.CALL.DEREF  Dereference Of An Unvalidated Pointer

SV.TAINTED.DEREF  Dereference Of An Unvalidated Pointer

HKMC C-EXP-005 (Low): Attention when using assignment operator instead of comparison operators

ASSIGCOND.CALL  Assignment in condition (call)

ASSIGCOND.GEN  Assignment in condition

HKMC C-EXP-005 (低): 比較演算子の代わりに代入演算子を使用する際の注意

ASSIGCOND.CALL  Assignment in condition (call)

ASSIGCOND.GEN  Assignment in condition

HKMC C-EXP-006 (Middle): Attention when using comparison operators instead of assignment operators

EFFECT  Statement has no effect

HKMC C-EXP-006 (中): 代入演算子の代わりに比較演算子を使用する際の注意

EFFECT  Statement has no effect

HKMC C-EXP-007 (High): Attention to external input not checked for the control condition of the loop

SV.TAINTED.CALL.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition through a Function Call

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

HKMC C-EXP-007 (高): ループの制御条件に対するチェックが行われていない外部入力に関する注意

SV.TAINTED.CALL.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition through a Function Call

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

HKMC C-EXP-009 (High): Do not null pointer dereference

NPD.CHECK.CALL.MIGHT  Pointer may be passed to function that can dereference it after it was positively checked for NULL

NPD.CHECK.CALL.MUST  Pointer will be passed to function that may dereference it after it was positively checked for NULL

NPD.CHECK.MIGHT  Pointer may be dereferenced after it was positively checked for NULL

NPD.CHECK.MUST  Pointer will be dereferenced after it was positively checked for NULL

NPD.CONST.CALL  NULL is passed to function that can dereference it

NPD.CONST.DEREF  NULL is dereferenced

NPD.FUNC.CALL.MIGHT  Result of function that may return NULL may be passed to another function that may dereference it

NPD.FUNC.CALL.MUST  Result of function that may return NULL will be passed to another function that may dereference it

NPD.FUNC.MIGHT  Result of function that can return NULL may be dereferenced

NPD.FUNC.MUST  Result of function that may return NULL will be dereferenced

NPD.GEN.CALL.MIGHT  Null pointer may be passed to function that may dereference it

NPD.GEN.CALL.MUST  Null pointer will be passed to function that may dereference it

NPD.GEN.MIGHT  Null pointer may be dereferenced

NPD.GEN.MUST  Null pointer will be dereferenced

RNPD.CALL  Suspicious dereference of pointer in function call before NULL check

RNPD.DEREF  Suspicious dereference of pointer before NULL check

HKMC C-EXP-009 (高): null ポインターを逆参照しないでください

NPD.CHECK.CALL.MIGHT  Pointer may be passed to function that can dereference it after it was positively checked for NULL

NPD.CHECK.CALL.MUST  Pointer will be passed to function that may dereference it after it was positively checked for NULL

NPD.CHECK.MIGHT  Pointer may be dereferenced after it was positively checked for NULL

NPD.CHECK.MUST  Pointer will be dereferenced after it was positively checked for NULL

NPD.CONST.CALL  NULL is passed to function that can dereference it

NPD.CONST.DEREF  NULL is dereferenced

NPD.FUNC.CALL.MIGHT  Result of function that may return NULL may be passed to another function that may dereference it

NPD.FUNC.CALL.MUST  Result of function that may return NULL will be passed to another function that may dereference it

NPD.FUNC.MIGHT  Result of function that can return NULL may be dereferenced

NPD.FUNC.MUST  Result of function that may return NULL will be dereferenced

NPD.GEN.CALL.MIGHT  Null pointer may be passed to function that may dereference it

NPD.GEN.CALL.MUST  Null pointer will be passed to function that may dereference it

NPD.GEN.MIGHT  Null pointer may be dereferenced

NPD.GEN.MUST  Null pointer will be dereferenced

RNPD.CALL  Suspicious dereference of pointer in function call before NULL check

RNPD.DEREF  Suspicious dereference of pointer before NULL check

HKMC C-EXP-010 (Low): Do not cast pointer into more strictly aligned pointer types

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012  Cast between a pointer to object type and a pointer to a different object type

MISRA.CAST.PTR.UNRELATED  Object of pointer type cast to unrelated type

MISRA.CAST.PTR_TO_INT  Cast between a pointer and an integral type

PORTING.CAST.PTR  Cast between types that are not both pointers or not pointers

PORTING.CAST.PTR.FLTPNT  Cast of a pointer to a floating point expression to a non floating point type pointer

PORTING.CAST.PTR.SIZE  Attempt to cast an expression to a type of a potentially incompatible size

HKMC C-EXP-010 (低): より厳密に整列されたポインター型にポインターをキャストしないでください

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012  Cast between a pointer to object type and a pointer to a different object type

MISRA.CAST.PTR.UNRELATED  Object of pointer type cast to unrelated type

MISRA.CAST.PTR_TO_INT  Cast between a pointer and an integral type

PORTING.CAST.PTR  Cast between types that are not both pointers or not pointers

PORTING.CAST.PTR.FLTPNT  Cast of a pointer to a floating point expression to a non floating point type pointer

PORTING.CAST.PTR.SIZE  Attempt to cast an expression to a type of a potentially incompatible size

HKMC C-EXP-011 (Middle): Do not variable access through pointers of incompatible types

MISRA.CAST.FUNC_PTR.2012  Conversion performed between a pointer to a function and another incompatible type

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012  Conversion performed between a pointer to an incomplete type and a different type

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012  A cast between a pointer to object and a non-integer arithmetic type

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012  Cast between a pointer to object type and a pointer to a different object type

HKMC C-EXP-011 (中): 互換性のない型のポインターを介して変数にアクセスしないでください

MISRA.CAST.FUNC_PTR.2012  Conversion performed between a pointer to a function and another incompatible type

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012  Conversion performed between a pointer to an incomplete type and a different type

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012  A cast between a pointer to object and a non-integer arithmetic type

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012  Cast between a pointer to object type and a pointer to a different object type

HKMC C-EXP-012 (Low): Do not modify constant object

CERT.STR.ARG.CONST_TO_NONCONST  Do not pass a const char pointer to a non-const char pointer argument

CERT.STR.ASSIGN.CONST_TO_NONCONST  Do not assign a const char pointer to a non-const char pointer

HKMC C-EXP-012 (低): 定数オブジェクトを変更しないでください

CERT.STR.ARG.CONST_TO_NONCONST  Do not pass a const char pointer to a non-const char pointer argument

CERT.STR.ASSIGN.CONST_TO_NONCONST  Do not assign a const char pointer to a non-const char pointer

HKMC C-EXP-013 (Middle): Do not compare padding data

CERT.MEMCMP.PADDED_DATA  Do not compare padding data

HKMC C-EXP-013 (中): パディングデータを比較しないでください

CERT.MEMCMP.PADDED_DATA  Do not compare padding data

HKMC C-EXP-014 (Middle): Attention to avoid undefined behavior when using a pointer that qualifies restrict

MISRA.TYPE.RESTRICT.QUAL.2012  The restrict type qualifier shall not be used

HKMC C-EXP-014 (中): restrict を修飾するポインターを使用する際の、未定義の動作を避けることに関する注意

MISRA.TYPE.RESTRICT.QUAL.2012  The restrict type qualifier shall not be used

HKMC C-EXP-015 (Low): Do not pass an expression that changes the value of variable as an operand to sizeof

MISRA.SIZEOF.SIDE_EFFECT  Operand of sizeof has side effects

HKMC C-EXP-015 (低): 変数の値を変更する式をオペランドとして sizeof、_Alignof、_Generic に渡さないでください

MISRA.SIZEOF.SIDE_EFFECT  Operand of sizeof has side effects

HKMC C-EXP-016 (Low): Do not perform assignment operation on certain operators

ASSIGCOND.CALL  Assignment in condition (call)

ASSIGCOND.GEN  Assignment in condition

MISRA.ASSIGN.COND  Assignment operator is used in a condition

HKMC C-EXP-016 (低): 特定の演算子で代入演算を行わないでください

ASSIGCOND.CALL  Assignment in condition (call)

ASSIGCOND.GEN  Assignment in condition

MISRA.ASSIGN.COND  Assignment operator is used in a condition

HKMC C-EXP-017 (Low): Do not use a bitwise operator with Boolean operand

MISRA.LOGIC.OPERATOR.NOT_BOOL  Operand of non-logical operator is effectively boolean

HKMC C-EXP-017 (低): ブール型のオペランドでビット演算子を使用しないでください

MISRA.LOGIC.OPERATOR.NOT_BOOL  Operand of non-logical operator is effectively boolean

HKMC C-FIO-001 (High): Exclude user input from format strings

SV.TAINTED.FMTSTR  Use of Unvalidated Data in a Format String

HKMC C-FIO-001 (高): 書式文字列からユーザー入力を除外します

SV.TAINTED.FMTSTR  Use of Unvalidated Data in a Format String

HKMC C-FIO-002 (High): Distinguish between characters read from a file and EOF or WEOF

CWARN.CMPCHR.EOF  A 'char' expression compared with EOF constant

HKMC C-FIO-002 (高): ファイルから読み込んだ文字と EOF または WEOF を区別します

CWARN.CMPCHR.EOF  A 'char' expression compared with EOF constant

HKMC C-FIO-007 (Middle): Close file when they are no longer needed

RH.LEAK  Resource leak

HKMC C-FIO-007 (中): ファイルを不要になったときに閉じます

RH.LEAK  Resource leak

HKMC C-FIO-008 (High): Use valid format strings

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  Incompatible type of a print function parameter

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a print function parameter

SV.FMT_STR.PRINT_IMPROP_LENGTH  Improper use of length modifier in a print function call

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  Too few arguments in a print function call

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  Too many arguments in a print function call

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  Incompatible type of a scan function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a scan function parameter

SV.FMT_STR.SCAN_IMPROP_LENGTH  Improper use of length modifier in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  Too few arguments in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  Too many arguments in a scan function call

SV.FMT_STR.UNKWN_FORMAT  Unknown format specifier in a print function call

HKMC C-FIO-008 (高): 有効な書式文字列を使用します

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  Incompatible type of a print function parameter

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a print function parameter

SV.FMT_STR.PRINT_IMPROP_LENGTH  Improper use of length modifier in a print function call

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  Too few arguments in a print function call

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  Too many arguments in a print function call

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  Incompatible type of a scan function parameter

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  Unexpected type of a scan function parameter

SV.FMT_STR.SCAN_IMPROP_LENGTH  Improper use of length modifier in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  Too few arguments in a scan function call

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  Too many arguments in a scan function call

SV.FMT_STR.UNKWN_FORMAT  Unknown format specifier in a print function call

HKMC C-FIO-009 (Low): Do not concurrent execution using shared resource with improper synchronization(Race condition)

SV.TOCTOU.FILE_ACCESS  Time of Creation/Time of Use Race condition in File Access

HKMC C-FIO-009 (低): 同期が不適切な共有リソースを使用して同時実行しないでください (競合状態)

SV.TOCTOU.FILE_ACCESS  Time of Creation/Time of Use Race condition in File Access

HKMC C-FLP-001 (High): Do not use floating-point variables as loop counters

MISRA.FOR.COUNTER.FLT  For loop counter has a floating point type

HKMC C-FLP-001 (高): 浮動小数点変数をループカウンターとして使用しないでください

MISRA.FOR.COUNTER.FLT  For loop counter has a floating point type

HKMC C-FLP-002 (Low): Ensure that floating-point type conversion occurs within the range of new types

MISRA.CAST.FLOAT.WIDER  Cast of floating point expression to a wider floating point type

MISRA.CAST.FLOAT_INT  Cast of floating point expression to integral type

MISRA.CAST.INT_FLOAT  Cast of integral expression to floating point type

MISRA.CONV.FLOAT  Implicit floating-point conversion

HKMC C-FLP-002 (低): 浮動小数点型の変換が新しい型の範囲内で発生することを確認してください

MISRA.CAST.FLOAT.WIDER  Cast of floating point expression to a wider floating point type

MISRA.CAST.FLOAT_INT  Cast of floating point expression to integral type

MISRA.CAST.INT_FLOAT  Cast of integral expression to floating point type

MISRA.CONV.FLOAT  Implicit floating-point conversion

HKMC C-FLP-003 (Low): Preserve precision when converting from integer type to floating-point type

PORTING.CAST.FLTPNT  Cast of a floating point expression to a non floating point type

HKMC C-FLP-003 (低): 整数型を浮動小数点型に変換するときに精度を保持します

PORTING.CAST.FLTPNT  Cast of a floating point expression to a non floating point type

HKMC C-INT-001 (Middle): Attention to integer conversion rules(CERT recommendations)

MISRA.CAST.INT  Non-trivial integer expression is cast to a wider type, or type with a different signedness

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

MISRA.CONV.INT.SIGN  Implicit integral conversion changes signedness

MISRA.CVALUE.IMPL.CAST  The value of an expression implicitly converted to a different type

MISRA.UMINUS.UNSIGNED  Operand of unary minus is unsigned

PRECISION.LOSS  Loss of Precision

HKMC C-INT-001 (中): 整数変換規則に関する注意 (CERT 推奨)

MISRA.CAST.INT  Non-trivial integer expression is cast to a wider type, or type with a different signedness

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

MISRA.CONV.INT.SIGN  Implicit integral conversion changes signedness

MISRA.CVALUE.IMPL.CAST  The value of an expression implicitly converted to a different type

MISRA.UMINUS.UNSIGNED  Operand of unary minus is unsigned

PRECISION.LOSS  Loss of Precision

HKMC C-INT-002 (High): Ensure that unsigned integer operations do not wrap

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

HKMC C-INT-002 (高): 符号なし整数演算がラップしないことを確認してください

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

HKMC C-INT-003 (High): Integer conversion must be guaranteed not to result in lost or misinterpreted data

PRECISION.LOSS  Loss of Precision

PRECISION.LOSS.CALL  Loss of Precision during function call

HKMC C-INT-003 (高): 整数変換により、データが失われたり、誤解釈されないように、保証する必要があります

PRECISION.LOSS  Loss of Precision

PRECISION.LOSS.CALL  Loss of Precision during function call

HKMC C-INT-004 (High): Ensure that signed integer operations do not overflow

CWARN.NOEFFECT.OUTOFRANGE  Value outside of range

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

HKMC C-INT-004 (高): 符号付き整数演算がオーバーフローしないことを確認してください

CWARN.NOEFFECT.OUTOFRANGE  Value outside of range

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

HKMC C-INT-005 (Low): Ensure that division and modulo operations do not result in 'divide-by-zero' errors

DBZ.CONST  Division by a zero constant occurs

DBZ.CONST.CALL  The value '0' is passed to function that can use this value as divisor

DBZ.GENERAL  Division by zero might occur

DBZ.GENERAL.FLOAT  Division by floating-point zero might occur

DBZ.ITERATOR  Division by zero might occur in a loop iterator

DBZ.ITERATOR.CALL  Division by zero might occur in a function call

DBZ.ITERATOR.FLOAT  Division by zero might occur in a loop iterator

HKMC C-INT-005 (低): 除算演算および剰余演算により、'ゼロ除算エラー' が発生しないことを確認してください

DBZ.CONST  Division by a zero constant occurs

DBZ.CONST.CALL  The value '0' is passed to function that can use this value as divisor

DBZ.GENERAL  Division by zero might occur

DBZ.GENERAL.FLOAT  Division by floating-point zero might occur

DBZ.ITERATOR  Division by zero might occur in a loop iterator

DBZ.ITERATOR.CALL  Division by zero might occur in a function call

DBZ.ITERATOR.FLOAT  Division by zero might occur in a loop iterator

HKMC C-INT-006 (Low): Do not shift to negative values or shift by more than or equal to the bits of operands

MISRA.SHIFT.RANGE.2012  Right operand of shift operation is out of range - greater or equal to the essential type size of left operand, or is negative

HKMC C-INT-006 (低): 負の値にシフトしたり、オペランドのビット数以上にシフトしないでください

MISRA.SHIFT.RANGE.2012  Right operand of shift operation is out of range - greater or equal to the essential type size of left operand, or is negative

HKMC C-INT-007 (Low): Use the correct precisions of integer type

NUM.OVERFLOW  Possible Overflow

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

HKMC C-INT-007 (低): 整数型の正しい精度を使用します

NUM.OVERFLOW  Possible Overflow

NUM.OVERFLOW.DF  Possible numeric overflow or wraparound

HKMC C-INT-008 (Low): Attention to type conversion between pointer and integer

MISRA.CAST.OBJ_PTR_TO_INT.2012  Conversion performed between a pointer to an object and an integer type

HKMC C-INT-008 (低): ポインターと整数の間での型変換に関する注意

MISRA.CAST.OBJ_PTR_TO_INT.2012  Conversion performed between a pointer to an object and an integer type

HKMC C-INT-009 (Middle): Attention to calculate for buffer or data type size

CXX.SIZEOF.CSTRING  Use of sizeof on char* may be misleading

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

HKMC C-INT-009 (中): バッファまたはデータ型のサイズの計算に関する注意

CXX.SIZEOF.CSTRING  Use of sizeof on char* may be misleading

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

HKMC C-MEM-001 (High): Do not reference freed memory

UFM.DEREF.MIGHT  Use of free memory (access) - possible

UFM.DEREF.MUST  Use of Freed Memory by Pointer

UFM.FFM.MIGHT  Use of free memory (double free) - possible

UFM.FFM.MUST  Freeing Freed Memory

UFM.RETURN.MIGHT  Use of freed memory (return) - possible

UFM.RETURN.MUST  Use of Freed Memory on Return

UFM.USE.MIGHT  Use of free memory - possible

UFM.USE.MUST  Use of Freed Memory

HKMC C-MEM-001 (高): 解放されたメモリを参照しないでください

UFM.DEREF.MIGHT  Use of free memory (access) - possible

UFM.DEREF.MUST  Use of Freed Memory by Pointer

UFM.FFM.MIGHT  Use of free memory (double free) - possible

UFM.FFM.MUST  Freeing Freed Memory

UFM.RETURN.MIGHT  Use of freed memory (return) - possible

UFM.RETURN.MUST  Use of Freed Memory on Return

UFM.USE.MIGHT  Use of free memory - possible

UFM.USE.MUST  Use of Freed Memory

HKMC C-MEM-002 (Middle): Free dynamically allocated memory when no longer needed

CL.FFM.ASSIGN  Use of free memory (double free) - no operator=

CL.FFM.COPY  Use of free memory (double free) - no copy constructor

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

HKMC C-MEM-002 (中): 動的に割り当てられたメモリを不要になったときに解放します

CL.FFM.ASSIGN  Use of free memory (double free) - no operator=

CL.FFM.COPY  Use of free memory (double free) - no copy constructor

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

HKMC C-MEM-004 (High): Free memory allocated dynamically

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

HKMC C-MEM-004 (高): 動的に割り当てられたメモリを解放します

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

HKMC C-MEM-005 (High): Allocate sufficient memory for an object

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

SV.TAINTED.ALLOC_SIZE  Use of Unvalidated Integer in Memory Allocation

HKMC C-MEM-005 (高): オブジェクトに十分なメモリを割り当てます

INCORRECT.ALLOC_SIZE  Incorrect Allocation Size

SV.TAINTED.ALLOC_SIZE  Use of Unvalidated Integer in Memory Allocation

HKMC C-MEM-007 (Middle): Improper clearing of heap memory before release('Heap inspection')

CXX.REALLOC  Use of realloc() should be avoided

HKMC C-MEM-007 (中): リリース前のヒープメモリの不適切なクリア ('ヒープ検査')

CXX.REALLOC  Use of realloc() should be avoided

HKMC C-MSC-003 (Middle): Do not use the rand() when generating random number using PRNG

CERT.MSC.STD_RAND_CALL  Do not use std::rand() for generating pseudorandom numbers

HKMC C-MSC-003 (中): PRNG を使用して乱数を生成する場合は rand() を使用しないでください

CERT.MSC.STD_RAND_CALL  Do not use std::rand() for generating pseudorandom numbers

HKMC C-MSC-004 (Middle): Set seeds correctly when using PRNG

CERT.MSC.SEED_RANDOM  Properly seed pseudorandom number generators

HKMC C-MSC-004 (中): PRNG を使用するときにシードを正しく設定します

CERT.MSC.SEED_RANDOM  Properly seed pseudorandom number generators

HKMC C-MSC-005 (High): Attention to pass improper argument when using the asctime()

CERT.MSC.ASCTIME  Do not pass invalid data to the asctime() function

HKMC C-MSC-005 (高): asctime() の使用時に不適切な引数を渡すことに関する注意

CERT.MSC.ASCTIME  Do not pass invalid data to the asctime() function

HKMC C-MSC-006 (High): Return all functions other than void return type

FUNCRET.GEN  Non-void function does not return value

FUNCRET.IMPLICIT  Non-void function implicitly returning int does not return value

HKMC C-MSC-006 (高): void 戻り型以外のすべての関数を返します

FUNCRET.GEN  Non-void function does not return value

FUNCRET.IMPLICIT  Non-void function implicitly returning int does not return value

HKMC C-MSC-008 (Low): Do not call va_arg with an argument of the incorrect type

VA.LIST.INDETERMINATE  Attempt to call va_arg() on a va_list that has an indeterminate value

HKMC C-MSC-008 (低): 不正確な型の引数で va_arg を呼び出さないでください

VA.LIST.INDETERMINATE  Attempt to call va_arg() on a va_list that has an indeterminate value

HKMC C-MSC-010 (Middle): Do not use getlogin in multithreaded applications

CXX.GETLOGIN  Do not use getlogin in multithreaded applications

HKMC C-MSC-010 (中): マルチスレッドアプリケーションで getlogin を使用しないでください

CXX.GETLOGIN  Do not use getlogin in multithreaded applications

HKMC C-MSC-013 (N/A): Satisfy a certain level of security when using cryptographic algorithms or hash functions

RCA  Risky cryptographic algorithm used

HKMC C-MSC-013 (N/A): 暗号化アルゴリズムまたはハッシュ関数を使用するときに、一定レベルのセキュリティを満たすようにします

RCA  Risky cryptographic algorithm used

HKMC C-MSC-014 (High): Do not use algorithms that find security vulnerabilities such as the DES symmetric key algorithm and the MD5 hash algorithm[MCU]

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

HKMC C-MSC-014 (高): DES 対称キーアルゴリズムや MD5 ハッシュアルゴリズムなど、セキュリティの脆弱性を検出するアルゴリズムを使用しないでください [MCU]

SV.WEAK_CRYPTO.WEAK_HASH  Weak Hash Function

HKMC C-MSC-015 (High): Do not use fixed or predictable seeds[MCU]

CERT.MSC.SEED_RANDOM  Properly seed pseudorandom number generators

HKMC C-MSC-015 (高): 一定のシードまたは予測可能なシードを使用しないでください [MCU]

CERT.MSC.SEED_RANDOM  Properly seed pseudorandom number generators

HKMC C-POS-002 (Low): Do not use for vfork()

CXX.POSIX.VFORK  Do not use vfork()

HKMC C-POS-002 (低): vfork() には使用しないでください

CXX.POSIX.VFORK  Do not use vfork()

HKMC C-POS-003 (High): Do not pass a pointer to a local variable in the putenv()

CERT.PUTENV.AUTO_VARIABLE  Do not call putenv() with a pointer to an automatic variable as the argument

CXX.PUTENV.LOCAL.PTR  Do not pass a pointer to a local variable in the putenv()

HKMC C-POS-003 (高): putenv() でポインターをローカル変数に渡さないでください

CERT.PUTENV.AUTO_VARIABLE  Do not call putenv() with a pointer to an automatic variable as the argument

CXX.PUTENV.LOCAL.PTR  Do not pass a pointer to a local variable in the putenv()

HKMC C-POS-005 (Middle): Use of correct byte order is required for data communication between systems

BYTEORDER.HTON.SEND  Missed conversion from host to network byte order

BYTEORDER.HTON.WRITE  Missed conversion from host to network byte order

BYTEORDER.NTOH.READ  Missed conversion from network to host byte order

BYTEORDER.NTOH.RECV  Missed conversion from network to host byte order

HKMC C-POS-005 (中): システム間のデータ通信には正しいバイト順序の使用が必要です

BYTEORDER.HTON.SEND  Missed conversion from host to network byte order

BYTEORDER.HTON.WRITE  Missed conversion from host to network byte order

BYTEORDER.NTOH.READ  Missed conversion from network to host byte order

BYTEORDER.NTOH.RECV  Missed conversion from network to host byte order

HKMC C-POS-006 (Low): Do not use signals to terminate threads

MISRA.INCL.SIGNAL.2012  The standard header file signal.h shall not be used

HKMC C-POS-006 (低): スレッドを終了するためにシグナルを使用しないでください

MISRA.INCL.SIGNAL.2012  The standard header file signal.h shall not be used

HKMC C-POS-008 (High): Detect and handle POSIX library errors

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

HKMC C-POS-008 (高): POSIX ライブラリのエラーを検出および処理します

SV.RVT.RETVAL_NOTTESTED  Ignored Return Value

HKMC C-POS-009 (High): Attention improper resource locking

CONC.DBL_LOCK  Double Lock

CONC.DBL_UNLOCK  Double Unlock

CONC.DL  Deadlock

CONC.NO_UNLOCK  Missing unlock for variable

HKMC C-POS-009 (高): 不適切なリソースロックに関する注意

CONC.DBL_LOCK  Double Lock

CONC.DBL_UNLOCK  Double Unlock

CONC.DL  Deadlock

CONC.NO_UNLOCK  Missing unlock for variable

HKMC C-POS-011 (Middle): Clear block delimitation of the statements[MCU]

MISRA.IF.NO_COMPOUND  The body of if/else statement is not a compound statement

HKMC C-POS-011 (中): ステートメントのブロック区切りをクリアします [MCU]

MISRA.IF.NO_COMPOUND  The body of if/else statement is not a compound statement

HKMC C-POS-012 (Middle): Remove 'Dead code'[MCU]

CWARN.NOEFFECT.SELF_ASSIGN  A variable is assigned to self

CWARN.NOEFFECT.UCMP.GE  Comparison of unsigned value against 0 is always true

CWARN.NOEFFECT.UCMP.GE.MACRO  Comparison of unsigned value against 0 within a macro is always true

CWARN.NOEFFECT.UCMP.LT  Comparison of unsigned value against 0 is always false

CWARN.NOEFFECT.UCMP.LT.MACRO  Comparison of unsigned value against 0 within a macro is always false

CWARN.NULLCHECK.FUNCNAME  Function address was directly compared against 0

EFFECT  Statement has no effect

INVARIANT_CONDITION.GEN  Invariant expression in a condition

INVARIANT_CONDITION.UNREACH  Invariant expression in a condition

LA_UNUSED  Label unused

MISRA.STMT.NO_EFFECT  The statement has no side effects, and does not change control flow

UNREACH.GEN  Unreachable code

UNREACH.RETURN  Unreachable Void Return

UNREACH.SIZEOF  Architecture-related unreachable code

VA_UNUSED.GEN  Value is Never Used after Assignment

VA_UNUSED.INIT  Value is Never Used after Initialization

HKMC C-POS-012 (中): '実行されないコード' を削除します [MCU]

CWARN.NOEFFECT.SELF_ASSIGN  A variable is assigned to self

CWARN.NOEFFECT.UCMP.GE  Comparison of unsigned value against 0 is always true

CWARN.NOEFFECT.UCMP.GE.MACRO  Comparison of unsigned value against 0 within a macro is always true

CWARN.NOEFFECT.UCMP.LT  Comparison of unsigned value against 0 is always false

CWARN.NOEFFECT.UCMP.LT.MACRO  Comparison of unsigned value against 0 within a macro is always false

CWARN.NULLCHECK.FUNCNAME  Function address was directly compared against 0

EFFECT  Statement has no effect

INVARIANT_CONDITION.GEN  Invariant expression in a condition

INVARIANT_CONDITION.UNREACH  Invariant expression in a condition

LA_UNUSED  Label unused

MISRA.STMT.NO_EFFECT  The statement has no side effects, and does not change control flow

UNREACH.GEN  Unreachable code

UNREACH.RETURN  Unreachable Void Return

UNREACH.SIZEOF  Architecture-related unreachable code

VA_UNUSED.GEN  Value is Never Used after Assignment

VA_UNUSED.INIT  Value is Never Used after Initialization

HKMC C-PRE-002 (Low): Do not pass specific variable value conversion argument to unsafe macros

PORTING.VAR.EFFECTS  Variable used twice in one expression where one usage is subject to side-effects

HKMC C-PRE-002 (低): 特定の変数値の変換引数を安全でないマクロに渡さないでください

PORTING.VAR.EFFECTS  Variable used twice in one expression where one usage is subject to side-effects

HKMC C-PRE-003 (Low): Do not pass preprocessing directives in when calling function-like macros

MISRA.EXPANSION.DIRECTIVE  Directive-like tokens within a macro argument

HKMC C-PRE-003 (低): 関数のようなマクロを呼び出すときに、前処理ディレクティブを渡さないでください

MISRA.EXPANSION.DIRECTIVE  Directive-like tokens within a macro argument

HKMC C-STR-001 (Low): Do not modify string literals

CERT.STR.ARG.CONST_TO_NONCONST  Do not pass a const char pointer to a non-const char pointer argument

CERT.STR.ASSIGN.CONST_TO_NONCONST  Do not assign a const char pointer to a non-const char pointer

HKMC C-STR-001 (低): 文字列リテラルを変更しないでください

CERT.STR.ARG.CONST_TO_NONCONST  Do not pass a const char pointer to a non-const char pointer argument

CERT.STR.ASSIGN.CONST_TO_NONCONST  Do not assign a const char pointer to a non-const char pointer

HKMC C-STR-002 (High): Ensure that storage has sufficiently space for character data and the null terminator

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

SV.FMT_STR.BAD_SCAN_FORMAT  Input format specifier error

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

HKMC C-STR-002 (高): ストレージに文字データと null 終了文字のための十分なスペースがあることを確認してください

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

SV.FMT_STR.BAD_SCAN_FORMAT  Input format specifier error

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

HKMC C-STR-003 (High): Do not passing a non-null-terminated string to a library function

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.STRBO.BOUND_COPY.UNTERM  Possible Buffer Overflow in Following String Operations

HKMC C-STR-003 (高): null で終了しない文字列をライブラリ関数に渡さないでください

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.STRBO.BOUND_COPY.UNTERM  Possible Buffer Overflow in Following String Operations

HKMC C-STR-004 (Low): Argument to character-handling function must be passed as unsigned char

AUTOSAR.STDLIB.CCTYPE.UCHAR  Arguments to character-handling functions defined in <cctype> shall be representable as an unsigned char

MISRA.ETYPE.ASSIGN.2012  Assignment to an object of a narrower essential type or a different essential type category

HKMC C-STR-004 (低): 文字処理関数への引数は unsigned char として渡される必要があります

AUTOSAR.STDLIB.CCTYPE.UCHAR  Arguments to character-handling functions defined in <cctype> shall be representable as an unsigned char

MISRA.ETYPE.ASSIGN.2012  Assignment to an object of a narrower essential type or a different essential type category

HKMC C-STR-005 (High): Do not confuse narrow and wide character strings when passing arguments to character-handling function

CXX.DIFF.WIDTH.STR_AND_FUNC  Implicit cast between narrow and wide character string while calling function

HKMC C-STR-005 (高): 文字処理関数に引数を渡すときに、ナロー文字列とワイド文字列を混同しないでください

CXX.DIFF.WIDTH.STR_AND_FUNC  Implicit cast between narrow and wide character string while calling function

HKMC C-STR-006 (Low): Incorrect calculation of the multi-byte string length

CXX.MALLOC.WCHAR_LENGTH  Use (wsclen()+1*sizeof(wchar_t)) when allocating memory with malloc for wchar_t buffers

HKMC C-STR-006 (低): マルチバイト文字列長の不正確な計算

CXX.MALLOC.WCHAR_LENGTH  Use (wsclen()+1*sizeof(wchar_t)) when allocating memory with malloc for wchar_t buffers

MCU]

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

CERT.ARR.PTR.ARITH  Pointer is used in arithmetic expression

MISRA.PTR.ARITH  Pointer is used in arithmetic or array index expression

MISRA.PTR.ARITH.2012  Pointer is used in arithmetic expression

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.TAINTED.INDEX_ACCESS  Use of Unvalidated Integer as Array Index

SV.TAINTED.LOOP_BOUND  Use of Unvalidated Integer in Loop Condition

_Alignof

MISRA.SIZEOF.SIDE_EFFECT  Operand of sizeof has side effects

_Generic

MISRA.SIZEOF.SIDE_EFFECT  Operand of sizeof has side effects

read) uninitialized memory

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.ARRAY.MIGHT  Uninitialized Array - possible

UNINIT.STACK.ARRAY.MUST  Uninitialized Array

UNINIT.STACK.ARRAY.PARTIAL.MUST  Partially Uninitialized Array

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MUST  Uninitialized Variable

"MISRA", "MISRA C" and "MISRA C++" are registered trademarks of The MISRA Consortium Limited. ​