Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Generated Content
Info
title
Note

This page is automatically generated from the "Automated Detection" sections in the individual guidelines. Do not modify this page directly.

...

was automatically generated and should not be edited.

Note

The information on this page was provided by outside contributors and has not been verified by SEI CERT.

Tip

The table below can be re-ordered, by clicking column headers.

...

Include Page
Klocwork_V
Klocwork_V

Checker

Guideline

ASSIGCOND.BOOLMSC02-CPP. Avoid errors of omission
ASSIGCOND.CALLEXP19-CPP. Do not perform assignments in conditional expressions
ASSIGCOND.CALLMSC02-CPP. Avoid errors of omission
ASSIGCOND.GENEXP19-CPP. Do not perform assignments in conditional expressions
ABV.ANY_SIZE_ARRAY CTR50-CPP. Guarantee that container indices and iterators are within the valid range
ABV.GENERAL CTR50-CPP. Guarantee that container indices and iterators are within the valid range
ABV.GENERAL.MULTIDIMENSION CTR50-CPP. Guarantee that container indices and iterators are within the valid range
ABV.STACK CTR50-CPP. Guarantee that container indices and iterators are within the valid range
ABV.TAINTED CTR50-CPP. Guarantee that container indices and iterators are within the valid range
AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INIT MSC51-CPP. Ensure your random number generator is properly seeded
CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED CON50-CPP. Do not destroy a mutex while it is locked
CERT.CONC.UNSAFE_COND_VAR CON55-CPP. Preserve thread safety and liveness when using condition variables
CERT.CONC.WAKE_IN_LOOP CON54-CPP. Wrap functions that can spuriously wake up in a loop
CERT.DCL.AMBIGUOUS_DECL DCL53-CPP. Do not write syntactically ambiguous declarations
CERT.DCL.REF_TYPE.CONST_OR_VOLATILE DCL52-CPP. Never qualify a reference type with const or volatile
CERT.DCL.SAME_SCOPE_ALLOC_DEALLOC DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope
CERT.DCL.STD_NS_MODIFIED DCL58-CPP. Do not modify the standard namespaces
CERT.ERR.ABRUPT_TERM ERR50-CPP. Do not abruptly terminate the program
CERT.ERR.CONV.STR_TO_NUM ERR62-CPP. Detect errors when converting a string to a number
CERT.EXPR.DELETE_ARR.BASE_PTR EXP51-CPP. Do not delete an array through a pointer of the incorrect type
CERT.EXPR.DELETE_PTR.INCOMPLETE_TYPE EXP57-CPP. Do not cast or delete pointers to incomplete classes
CERT.EXPR.PARENS EXP50-CPP. Do not depend on the order of evaluation for side effects
CERT.EXPR.PASS_NON_STD_LAYOUT EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
CERT.MEM.OVERRIDE.DELETE MEM55-CPP. Honor replacement dynamic storage management requirements
CERT.MEM.OVERRIDE.NEW MEM55-CPP. Honor replacement dynamic storage management requirements
CERT.MEMCMP.PADDED_DATA EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
CERT.MSC.NORETURN_FUNC_RETURNS MSC53-CPP. Do not return from a function declared [[noreturn]]
CERT.MSC.SIG_HANDLER.POF MSC54-CPP. A signal handler must be a plain old function
CERT.MSC.STD_RAND_CALL MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
CERT.OOP.COPY_MUTATES OOP58-CPP. Copy operations must not mutate the source object
CERT.OOP.CSTD_FUNC_USE OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
CERT.OOP.CTOR.INIT_ORDER OOP53-CPP. Write constructor member initializers in the canonical order
CERT.OOP.CTOR.VIRTUAL_FUNC OOP50-CPP. Do not invoke virtual functions from constructors or destructors
CERT.OOP.PTR_MEMBER.NO_MEMBER OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
CERT.VA_START.TYPE EXP58-CPP. Pass an object of the correct type to va_start
CL.FFM.ASSIGN EXP54-CPP. Do not access an object outside of its lifetime
CL.FFM.ASSIGN MEM51-CPP. Properly deallocate dynamically allocated resources
CL.FFM.COPY EXP54-CPP. Do not access an object outside of its lifetime
CL.FFM.COPY MEM51-CPP. Properly deallocate dynamically allocated resources
CL.FMM MEM51-CPP. Properly deallocate dynamically allocated resources
CL.MLK ERR57-CPP. Do not leak resources when handling exceptions ASSIGCOND.GENMSC02-CPP. Avoid errors of omission
CL.MLK.VIRTUAL OOP52-CPP. Do not delete a polymorphic object without a virtual destructor
EFFECTMSC02-CPP. Avoid errors of omission
IF_DUPL_HEADERPRE08-CPP. Guarantee that header file names are unique
IF_MULTI_DECLDCL01-CPP. Do not reuse variable names in subscopes
IF_MULTI_DEFDCL01-CPP. Do not reuse variable names in subscopes
IF_MULTI_KINDDCL01-CPP. Do not reuse variable names in subscopes
IF_ONLY_DECLMSC13-CPP. Detect and remove unused values
IF_ONLY_DEFMSC13-CPP. Detect and remove unused values
IF_ONLY_LOCALMSC13-CPP. Detect and remove unused values
INC.EXTRAMSC12-CPP. Detect and remove code that has no effect
INCORRECT.ALLOC_SIZEEXP01-CPP. Do not take the size of a pointer to determine the size of the pointed-to type
LA_UNUSEDMSC01-CPP. Strive for logical completeness
LV_UNUSED.DEADMSC07-CPP. Detect and remove dead code
LV_UNUSED.GENMSC13-CPP. Detect and remove unused values
NNTSSTR03-CPP. Do not inadvertently truncate a null-terminated character array
NNTS.TAINTEDSTR02-CPP. Sanitize data passed to complex subsystems
PA_UNUSED.DEADMSC07-CPP. Detect and remove dead code
PA_UNUSED.GENMSC13-CPP. Detect and remove unused values
SEMICOLMSC03-CPP. Avoid errors of addition
SV.CODE_INJECTION.SHELL_EXECENV02-CPP. Do not call system() if you do not need a command processor
SV.CUDS.MISSING_ABSOLUTE_PATHFIO02-CPP. Canonicalize path names originating from untrusted sources
SV.RVT.RETVAL_NOTTESTEDEXP12-CPP. Do not ignore values returned by functions or methods
SV.TAINTED.INJECTIONENV02-CPP. Do not call system() if you do not need a command processor
SV.TAINTED.INJECTIONSTR02-CPP. Sanitize data passed to complex subsystems
CL.SELF-ASSIGN OOP54-CPP. Gracefully handle self-copy assignment
CL.SHALLOW.ASSIGN MEM51-CPP. Properly deallocate dynamically allocated resources
CL.SHALLOW.COPY MEM51-CPP. Properly deallocate dynamically allocated resources
CWARN.DTOR.NONVIRT.DELETE OOP52-CPP. Do not delete a polymorphic object without a virtual destructor
CWARN.MEM.NONPOD EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
FMM.MIGHT MEM51-CPP. Properly deallocate dynamically allocated resources
FMM.MUST MEM51-CPP. Properly deallocate dynamically allocated resources
FNH.MIGHT MEM51-CPP. Properly deallocate dynamically allocated resources
FNH.MUST MEM51-CPP. Properly deallocate dynamically allocated resources
FUM.GEN.MIGHT MEM51-CPP. Properly deallocate dynamically allocated resources
FUM.GEN.MUST MEM51-CPP. Properly deallocate dynamically allocated resources
FUNCRET.GEN MSC52-CPP. Value-returning functions must return a value from all exit paths
FUNCRET.IMPLICIT MSC52-CPP. Value-returning functions must return a value from all exit paths
ITER.CONTAINER.MODIFIED CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
LOCRET.ARG EXP54-CPP. Do not access an object outside of its lifetime
LOCRET.GLOB EXP54-CPP. Do not access an object outside of its lifetime
LOCRET.RET EXP54-CPP. Do not access an object outside of its lifetime
LOCRET.RET EXP61-CPP. A lambda object must not outlive any of its reference captured objects
MISRA.CAST.CONST EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type
MISRA.CAST.PTR.UNRELATED EXP56-CPP. Do not call a function with a mismatched language linkage
MISRA.CAST.PTR_TO_INT EXP56-CPP. Do not call a function with a mismatched language linkage
MISRA.CATCH.ALL ERR51-CPP. Handle all exceptions
MISRA.CATCH.BY_VALUE ERR61-CPP. Catch exceptions by lvalue reference
MISRA.CATCH.NOALL ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
MISRA.CATCH.WRONGORD ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
MISRA.CTOR.TRY.NON_STATIC ERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler
MISRA.DEFINE.WRONGNAME DCL51-CPP. Do not declare or define a reserved identifier
MISRA.DEFINE.WRONGNAME.UNDERSCORE DCL51-CPP. Do not declare or define a reserved identifier
MISRA.DTOR.THROW DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
MISRA.EXPR.PARENS.INSUFFICIENT EXP50-CPP. Do not depend on the order of evaluation for side effects
MISRA.FUNC.VARARG DCL50-CPP. Do not define a C-style variadic function
MISRA.INCR_DECR.OTHER EXP50-CPP. Do not depend on the order of evaluation for side effects
MISRA.NAMESPACE.UNMD DCL59-CPP. Do not define an unnamed namespace in a header file
MISRA.SIZEOF.SIDE_EFFECT EXP52-CPP. Do not rely on side effects in unevaluated operands
MISRA.STDLIB.LONGJMP ERR52-CPP. Do not use setjmp() or longjmp()
MISRA.STDLIB.WRONGNAME DCL51-CPP. Do not declare or define a reserved identifier
MISRA.STDLIB.WRONGNAME.UNDERSCORE DCL51-CPP. Do not declare or define a reserved identifier
MISRA.TERMINATE ERR50-CPP. Do not abruptly terminate the program
MISRA.UNDEF.WRONGNAME DCL51-CPP. Do not declare or define a reserved identifier
MISRA.UNDEF.WRONGNAME.UNDERSCORE DCL51-CPP. Do not declare or define a reserved identifier
MLK.MIGHT ERR57-CPP. Do not leak resources when handling exceptions
MLK.MUST ERR57-CPP. Do not leak resources when handling exceptions
MLK.RET.MIGHT ERR57-CPP. Do not leak resources when handling exceptions
MLK.RET.MUST ERR57-CPP. Do not leak resources when handling exceptions
NNTS.MIGHT STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
NNTS.MUST STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
NNTS.TAINTED STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
NPD.CHECK.CALL.MIGHT STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CHECK.CALL.MIGHT MEM52-CPP. Detect and handle memory allocation errors
NPD.CHECK.CALL.MUST STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CHECK.CALL.MUST MEM52-CPP. Detect and handle memory allocation errors
NPD.CHECK.MIGHT STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CHECK.MIGHT MEM52-CPP. Detect and handle memory allocation errors
NPD.CHECK.MUST STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CHECK.MUST MEM52-CPP. Detect and handle memory allocation errors
NPD.CONST.CALL STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CONST.CALL MEM52-CPP. Detect and handle memory allocation errors
NPD.CONST.DEREF STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CONST.DEREF MEM52-CPP. Detect and handle memory allocation errors
NPD.FUNC.CALL.MIGHT STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.FUNC.CALL.MIGHT MEM52-CPP. Detect and handle memory allocation errors
NPD.FUNC.CALL.MUST STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.FUNC.CALL.MUST MEM52-CPP. Detect and handle memory allocation errors
NPD.FUNC.MIGHT STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.FUNC.MIGHT MEM52-CPP. Detect and handle memory allocation errors
NPD.FUNC.MUST STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.FUNC.MUST MEM52-CPP. Detect and handle memory allocation errors
NPD.GEN.CALL.MIGHT STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.GEN.CALL.MIGHT MEM52-CPP. Detect and handle memory allocation errors
NPD.GEN.CALL.MUST STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.GEN.CALL.MUST MEM52-CPP. Detect and handle memory allocation errors
NPD.GEN.MIGHT STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.GEN.MIGHT MEM52-CPP. Detect and handle memory allocation errors
NPD.GEN.MUST STR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.GEN.MUST MEM52-CPP. Detect and handle memory allocation errors
PORTING.CAST.PTR EXP56-CPP. Do not call a function with a mismatched language linkage
PORTING.CAST.PTR.FLTPNT EXP56-CPP. Do not call a function with a mismatched language linkage
PORTING.CAST.PTR.SIZE EXP56-CPP. Do not call a function with a mismatched language linkage
PORTING.CAST.SIZE EXP56-CPP. Do not call a function with a mismatched language linkage
PORTING.VAR.EFFECTS EXP50-CPP. Do not depend on the order of evaluation for side effects
RH.LEAK FIO51-CPP. Close files when they are no longer needed
RH.LEAK ERR57-CPP. Do not leak resources when handling exceptions
RNPD.CALL STR51-CPP. Do not attempt to create a std::string from a null pointer
RNPD.CALL MEM52-CPP. Detect and handle memory allocation errors
RNPD.DEREF STR51-CPP. Do not attempt to create a std::string from a null pointer
RNPD.DEREF MEM52-CPP. Detect and handle memory allocation errors
SV.TAINTED.ALLOC_SIZE CTR50-CPP. Guarantee that container indices and iterators are within the valid range
SV.TAINTED.CALL.INDEX_ACCESS CTR50-CPP. Guarantee that container indices and iterators are within the valid range
SV.TAINTED.CALL.LOOP_BOUND CTR50-CPP. Guarantee that container indices and iterators are within the valid range
SV.TAINTED.INDEX_ACCESS CTR50-CPP. Guarantee that container indices and iterators are within the valid range
SV.UNBOUND_STRING_INPUT.CIN STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
UFM.DEREF.MIGHT EXP54-CPP. Do not access an object outside of its lifetime SV.TOCTOU.FILE_ACCESSFIO01-CPP. Be careful using functions that use file names for identification
UFM.DEREF.MIGHT MEM50-CPP. Do not access freed memory
UFM.DEREF.MUST EXP54-CPP. Do not access an object outside of its lifetime
UFM.DEREF.MUST MEM50-CPP. Do not access freed memory
UFM.FFM.MIGHT EXP54-CPP. Do not access an object outside of its lifetime
UFM.FFM.PARAMPASS.MIGHT MEM50-CPP. Do not access freed memory
UFM.FFM.MUST EXP54-CPP. Do not access an object outside of its lifetime
UFM.PARAMPASSFFM.MUST MEM50-CPP. Do not access freed memory
UFM.RETURN.MIGHT EXP54-CPP. Do not access an object outside of its lifetime
UFM.RETURN.MIGHT MEM50-CPP. Do not access freed memory
UFM.RETURN.MUST EXP54-CPP. Do not access an object outside of its lifetime
UFM.RETURN.MUST MEM50-CPP. Do not access freed memory
UFM.USE.MIGHT EXP54-CPP. Do not access an object outside of its lifetime
UFM.USE.MIGHT MEM50-CPP. Do not access freed memory
UFM.USE.MUST EXP54-CPP. Do not access an object outside of its lifetime
UFM.USE.MUST MEM50-CPP. Do not access freed memory
UNREACH.BREAKMSC07-CPP. Detect and remove dead code
UNREACH.GENMSC07-CPP. Detect and remove dead code
UNREACH.RETURNMSC07-CPP. Detect and remove dead code
UNREACH.RETURN0MSC07-CPP. Detect and remove dead code
VA_UNUSED.GENMSC13-CPP. Detect and remove unused values
VA_UNUSED.INITMSC13-CPP. Detect and remove unused values
VA_UNUSED.INITCONSTMSC13-CPP. Detect and remove unused values

...