CERT C and C++ Secure Coding Standard IDs mapped to Klocwork C and C++ checkers

From current

Reference > Coding standards > CERT C and C++ Secure Coding Standard IDs mapped to Klocwork C and C++ checkers

See also C and C++ checker reference.

CERT ID Klocwork Issue Code and Description
ARR30-C ABR Buffer Overflow - Array Index Out of Bounds
ABV.ANY_SIZE_ARRAY Buffer Overflow - Array Index Out of Bounds
ABV.STACK Buffer Overflow - Local Array Index Out of Bounds
ABV.TAINTED Buffer Overflow from Unvalidated Input
SV.TAINTED.ALLOC_SIZE Use of Unvalidated Integer in Memory Allocation
SV.TAINTED.CALL.INDEX_ACCESS Use of Unvalidated Integer as Array Index by Function Call
SV.TAINTED.CALL.LOOP_BOUND Use of Unvalidated Integer in Loop Condition through a Function Call
SV.TAINTED.INDEX_ACCESS Use of Unvalidated Integer as Array Index
ARR33-C ABR Buffer Overflow - Array Index Out of Bounds
DCL30-C LOCRET.ARG Function returns address of local variable
LOCRET.GLOB Function returns address of local variable
LOCRET.RET Function returns address of local variable
DCL31-C RETVOID.GEN Non-void function returns void value
RETVOID.IMPLICIT Implicitly int function returns void value
ENV04-C SV.CODE_INJECTION.SHELL_EXEC Command Injection into Shell Execution
SV.TAINTED.INJECTION Command Injection
EXP01-C INCORRECT.ALLOC_SIZE Incorrect Allocation Size
EXP12-C SV.RVT.RETVAL_NOTTESTED Ignored Return Value
EXP15-C SEMICOL Suspiciously placed semicolon
EXP18-C ASSIGCOND.CALL Assignment in condition (call)
ASSIGCOND.GEN Assignment in condition
EXP33-C 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
EXP33-CPP UNINIT.CTOR.MIGHT Uninitialized Variable in Constructor - possible
UNINIT.CTOR.MUST Uninitialized Variable in Constructor
EXP34-C 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
FIO00-C 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.UNKWN_FORMAT Unknown format specifier in a print function call
FIO01-C SV.TOCTOU.FILE_ACCESS Time of Creation/Time of Use Race condition in File Access
FIO02-C SV.DLLPRELOAD.NONABSOLUTE.DLL Loading File without Use of Absolute Path
FIO30-C SV.FMTSTR.GENERIC Format String Vulnerability
SV.TAINTED.FMTSTR Use of Unvalidated Data in a Format String
FIO42-C RH.LEAK Resource leak
INT31-C PRECISION.LOSS Loss of Precision
PRECISION.LOSS.CALL Loss of Precision during function call
MEM30-C UFM.DEREF.MIGHT memory (access) - possible
UFM.DEREF.MUST Use of Freed Memory by Pointer
UFM.RETURN.MIGHT Use of freed memory (return) - possible
UFM.RETURN.MUST Use of Freed Memory on Return
UFM.USE.MIGHT Use of Freed Memory - possible
UFM.USE.MUST Use of Freed Memory
MEM31-C MLK.MIGHT Memory Leak - possible
MLK.MUST Memory Leak
UFM.FFM.MIGHT Use of Freed Memory (double free) - possible
UFM.FFM.MUST Freeing Freed Memory
MEM34-C FNH.MIGHT Freeing Non-Heap Memory - possible
FNH.MUST Freeing Non-Heap Memory
FUM.GEN.MIGHT Freeing Unallocated Memory - possible
FUM.GEN.MUST Freeing Unallocated Memory
MEM39-CPP FMM.MIGHT Freeing Mismatched Memory - possible
FMM.MUST Freeing Mismatched Memory
MEM41-CPP CL.FFM.ASSIGN Use of free memory (double free) - no operator=
CL.FFM.COPY Use of free memory (double free) - no copy constructor
CL.FMM Freeing Mismatched Memory - in destructor
CL.MLK.VIRTUAL Memory Leak - possible in destructor
MEM42-CPP CL.SELF-ASSIGN Memory Leak - in operator=
MSC01-C LA_UNUSED Label unused
MSC07-C UNREACH.GEN Unreachable code
UNREACH.RETURN Unreachable return
MSC12-C EFFECT Statement has no effect
MSC13-C LV_UNUSED.GEN Local variable unused
VA_UNUSED.GEN Value is Never Used after Assignment
VA_UNUSED.INIT Value is Never Used after Initialization
POS33-C SV.USAGERULES.PROCESS_VARIANTS Use of Dangerous Process Creation Function
POS36-C SV.USAGERULES.PERMISSIONS Use of Dangerous Process Creation Function
POS37-C SV.USAGERULES.PERMISSIONS Use of Dangerous Process Creation Function
STR02-C NNTS.TAINTED Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String
SV.TAINTED.INJECTION Command Injection
STR03-C NNTS.MIGHT Buffer Overflow - Non-null Terminated String
NNTS.MUST Buffer Overflow - Non-null Terminated String
STR31-C NNTS.MIGHT Buffer Overflow - Non-null Terminated String
NNTS.MUST Buffer Overflow - Non-null Terminated String
SV.STRBO.BOUND_COPY Buffer Overflow in Bound String Copy
SV.STRBO.BOUND_SPRINTF Buffer Overflow in Bound sprintf
SV.STRBO.UNBOUND_COPY Buffer Overflow in Unbound String Copy
SV.STRBO.UNBOUND_SPRINTF Buffer Overflow in Unbound sprintf
STR32-C NNTS.MIGHT Buffer Overflow - Non-null Terminated String
NNTS.MUST Buffer Overflow - Non-null Terminated String
STR33-C SV.FMT_STR.BAD_SCAN_FORMAT Input format specifier error
STR35-C NNTS.MIGHT Buffer Overflow - Non-null Terminated String
NNTS.TAINTED Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String