GitHub
CERT Secure Coding

Klocwork

This page was automatically generated and should not be edited.

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

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

Tool Version: 2025.2

CheckerGuideline
ABV.ANY_SIZE_ARRAYCTR50-CPP. Guarantee that container indices and iterators are within the valid range
ABV.GENERALCTR50-CPP. Guarantee that container indices and iterators are within the valid range
ABV.GENERAL.MULTIDIMENSIONCTR50-CPP. Guarantee that container indices and iterators are within the valid range
ABV.NON_ARRAYCTR50-CPP. Guarantee that container indices and iterators are within the valid range
ABV.STACKCTR50-CPP. Guarantee that container indices and iterators are within the valid range
ABV.TAINTEDCTR50-CPP. Guarantee that container indices and iterators are within the valid range
AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INITMSC51-CPP. Ensure your random number generator is properly seeded
CERT.CONC.MUTEX.DESTROY_WHILE_LOCKEDCON50-CPP. Do not destroy a mutex while it is locked
CERT.CONC.UNSAFE_COND_VARCON55-CPP. Preserve thread safety and liveness when using condition variables
CERT.CONC.WAKE_IN_LOOPCON54-CPP. Wrap functions that can spuriously wake up in a loop
CERT.DCL.AMBIGUOUS_DECLDCL53-CPP. Do not write syntactically ambiguous declarations
CERT.DCL.REF_TYPE.CONST_OR_VOLATILEDCL52-CPP. Never qualify a reference type with const or volatile
CERT.DCL.SAME_SCOPE_ALLOC_DEALLOCDCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope
CERT.DCL.STD_NS_MODIFIEDDCL58-CPP. Do not modify the standard namespaces
CERT.ERR.ABRUPT_TERMERR50-CPP. Do not abruptly terminate the program
CERT.ERR.CONV.STR_TO_NUMERR62-CPP. Detect errors when converting a string to a number
CERT.EXCEPTION.OVER.BOUNDARYERR59-CPP. Do not throw an exception across execution boundaries
CERT.EXPR.DELETE_ARR.BASE_PTREXP51-CPP. Do not delete an array through a pointer of the incorrect type
CERT.EXPR.DELETE_PTR.INCOMPLETE_TYPEEXP57-CPP. Do not cast or delete pointers to incomplete classes
CERT.EXPR.PARENSEXP50-CPP. Do not depend on the order of evaluation for side effects
CERT.EXPR.PASS_NON_STD_LAYOUTEXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
CERT.MEM.OBJ_LIFETIME_CTORMEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
CERT.MEM.OBJ_LIFETIME_DTORMEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
CERT.MEM.OVERRIDE.DELETEMEM55-CPP. Honor replacement dynamic storage management requirements
CERT.MEM.OVERRIDE.NEWMEM55-CPP. Honor replacement dynamic storage management requirements
CERT.MEM.PLACEMENTNEW.MISALIGNEDMEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity
CERT.MEM.PLACEMENTNEW.TOOSMALLMEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity
CERT.MEM.SMART_PTR.OWNEDMEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
CERT.MEM.SMART_PTR.OWNED.THISMEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
CERT.MEMCMP.PADDED_DATAEXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
CERT.MSC.NORETURN_FUNC_RETURNSMSC53-CPP. Do not return from a function declared [[noreturn]]
CERT.MSC.SIG_HANDLER.POFMSC54-CPP. A signal handler must be a plain old function
CERT.MSC.STD_RAND_CALLMSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
CERT.OOP.COPY_MUTATESOOP58-CPP. Copy operations must not mutate the source object
CERT.OOP.CSTD_FUNC_USEOOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
CERT.OOP.CTOR.INIT_ORDEROOP53-CPP. Write constructor member initializers in the canonical order
CERT.OOP.CTOR.VIRTUAL_FUNCOOP50-CPP. Do not invoke virtual functions from constructors or destructors
CERT.OOP.PTR_MEMBER.NO_MEMBEROOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
CERT.VA_START.TYPEEXP58-CPP. Pass an object of the correct type to va_start
CL.FFM.ASSIGNEXP54-CPP. Do not access an object outside of its lifetime
CL.FFM.ASSIGNMEM51-CPP. Properly deallocate dynamically allocated resources
CL.FFM.COPYEXP54-CPP. Do not access an object outside of its lifetime
CL.FFM.COPYMEM51-CPP. Properly deallocate dynamically allocated resources
CL.FMMMEM51-CPP. Properly deallocate dynamically allocated resources
CL.MLKERR57-CPP. Do not leak resources when handling exceptions
CL.MLK.VIRTUALOOP52-CPP. Do not delete a polymorphic object without a virtual destructor
CL.SELF-ASSIGNOOP54-CPP. Gracefully handle self-copy assignment
CL.SHALLOW.ASSIGNMEM51-CPP. Properly deallocate dynamically allocated resources
CL.SHALLOW.COPYMEM51-CPP. Properly deallocate dynamically allocated resources
CWARN.DTOR.NONVIRT.DELETEOOP52-CPP. Do not delete a polymorphic object without a virtual destructor
CWARN.MEM.NONPODEXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
FMM.MIGHTMEM51-CPP. Properly deallocate dynamically allocated resources
FMM.MUSTMEM51-CPP. Properly deallocate dynamically allocated resources
FNH.MIGHTMEM51-CPP. Properly deallocate dynamically allocated resources
FNH.MUSTMEM51-CPP. Properly deallocate dynamically allocated resources
FUM.GEN.MIGHTMEM51-CPP. Properly deallocate dynamically allocated resources
FUM.GEN.MUSTMEM51-CPP. Properly deallocate dynamically allocated resources
FUNCRET.GENMSC52-CPP. Value-returning functions must return a value from all exit paths
FUNCRET.IMPLICITMSC52-CPP. Value-returning functions must return a value from all exit paths
ITER.ADVANCE.NONADJACENTCTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
ITER.CONTAINER.MODIFIEDCTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
ITER.END.OUTPARAM.MIGHTCTR52-CPP. Guarantee that library functions do not overflow
ITER.END.OUTPARAM.MUSTCTR52-CPP. Guarantee that library functions do not overflow
LOCRET.ARGEXP54-CPP. Do not access an object outside of its lifetime
LOCRET.GLOBEXP54-CPP. Do not access an object outside of its lifetime
LOCRET.RETEXP54-CPP. Do not access an object outside of its lifetime
LOCRET.RETEXP61-CPP. A lambda object must not outlive any of its reference captured objects
MISRA.CAST.CONSTEXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type
MISRA.CAST.PTR.UNRELATEDEXP56-CPP. Do not call a function with a mismatched language linkage
MISRA.CAST.PTR_TO_INTEXP56-CPP. Do not call a function with a mismatched language linkage
MISRA.CATCH.ALLERR51-CPP. Handle all exceptions
MISRA.CATCH.BY_VALUEERR61-CPP. Catch exceptions by lvalue reference
MISRA.CATCH.NOALLERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
MISRA.CATCH.WRONGORDERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
MISRA.CTOR.TRY.NON_STATICERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler
MISRA.DEFINE.WRONGNAMEDCL51-CPP. Do not declare or define a reserved identifier
MISRA.DEFINE.WRONGNAME.UNDERSCOREDCL51-CPP. Do not declare or define a reserved identifier
MISRA.DTOR.THROWDCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
MISRA.EXPR.PARENS.INSUFFICIENTEXP50-CPP. Do not depend on the order of evaluation for side effects
MISRA.FUNC.VARARGDCL50-CPP. Do not define a C-style variadic function
MISRA.INCR_DECR.OTHEREXP50-CPP. Do not depend on the order of evaluation for side effects
MISRA.NAMESPACE.UNMDDCL59-CPP. Do not define an unnamed namespace in a header file
MISRA.SIZEOF.SIDE_EFFECTEXP52-CPP. Do not rely on side effects in unevaluated operands
MISRA.STDLIB.LONGJMPERR52-CPP. Do not use setjmp() or longjmp()
MISRA.STDLIB.WRONGNAMEDCL51-CPP. Do not declare or define a reserved identifier
MISRA.STDLIB.WRONGNAME.UNDERSCOREDCL51-CPP. Do not declare or define a reserved identifier
MISRA.TERMINATEERR50-CPP. Do not abruptly terminate the program
MISRA.UNDEF.WRONGNAMEDCL51-CPP. Do not declare or define a reserved identifier
MISRA.UNDEF.WRONGNAME.UNDERSCOREDCL51-CPP. Do not declare or define a reserved identifier
MLK.MIGHTERR57-CPP. Do not leak resources when handling exceptions
MLK.MUSTERR57-CPP. Do not leak resources when handling exceptions
MLK.RET.MIGHTERR57-CPP. Do not leak resources when handling exceptions
MLK.RET.MUSTERR57-CPP. Do not leak resources when handling exceptions
NNTS.MIGHTSTR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
NNTS.MUSTSTR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
NNTS.TAINTEDSTR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
NPD.CHECK.CALL.MIGHTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CHECK.CALL.MIGHTMEM52-CPP. Detect and handle memory allocation errors
NPD.CHECK.CALL.MUSTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CHECK.CALL.MUSTMEM52-CPP. Detect and handle memory allocation errors
NPD.CHECK.MIGHTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CHECK.MIGHTMEM52-CPP. Detect and handle memory allocation errors
NPD.CHECK.MUSTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CHECK.MUSTMEM52-CPP. Detect and handle memory allocation errors
NPD.CONST.CALLSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CONST.CALLMEM52-CPP. Detect and handle memory allocation errors
NPD.CONST.DEREFSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.CONST.DEREFMEM52-CPP. Detect and handle memory allocation errors
NPD.FUNC.CALL.MIGHTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.FUNC.CALL.MIGHTMEM52-CPP. Detect and handle memory allocation errors
NPD.FUNC.CALL.MUSTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.FUNC.CALL.MUSTMEM52-CPP. Detect and handle memory allocation errors
NPD.FUNC.MIGHTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.FUNC.MIGHTMEM52-CPP. Detect and handle memory allocation errors
NPD.FUNC.MUSTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.FUNC.MUSTMEM52-CPP. Detect and handle memory allocation errors
NPD.GEN.CALL.MIGHTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.GEN.CALL.MIGHTMEM52-CPP. Detect and handle memory allocation errors
NPD.GEN.CALL.MUSTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.GEN.CALL.MUSTMEM52-CPP. Detect and handle memory allocation errors
NPD.GEN.MIGHTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.GEN.MIGHTMEM52-CPP. Detect and handle memory allocation errors
NPD.GEN.MUSTSTR51-CPP. Do not attempt to create a std::string from a null pointer
NPD.GEN.MUSTMEM52-CPP. Detect and handle memory allocation errors
PORTING.CAST.PTREXP56-CPP. Do not call a function with a mismatched language linkage
PORTING.CAST.PTR.FLTPNTEXP56-CPP. Do not call a function with a mismatched language linkage
PORTING.CAST.PTR.SIZEEXP56-CPP. Do not call a function with a mismatched language linkage
PORTING.VAR.EFFECTSEXP50-CPP. Do not depend on the order of evaluation for side effects
RH.LEAKFIO51-CPP. Close files when they are no longer needed
RH.LEAKERR57-CPP. Do not leak resources when handling exceptions
RNPD.CALLSTR51-CPP. Do not attempt to create a std::string from a null pointer
RNPD.CALLMEM52-CPP. Detect and handle memory allocation errors
RNPD.DEREFSTR51-CPP. Do not attempt to create a std::string from a null pointer
RNPD.DEREFMEM52-CPP. Detect and handle memory allocation errors
SV.TAINTED.ALLOC_SIZECTR50-CPP. Guarantee that container indices and iterators are within the valid range
SV.TAINTED.CALL.INDEX_ACCESSCTR50-CPP. Guarantee that container indices and iterators are within the valid range
SV.TAINTED.CALL.LOOP_BOUNDCTR50-CPP. Guarantee that container indices and iterators are within the valid range
SV.TAINTED.INDEX_ACCESSCTR50-CPP. Guarantee that container indices and iterators are within the valid range
SV.UNBOUND_STRING_INPUT.CINSTR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
UFM.DEREF.MIGHTEXP54-CPP. Do not access an object outside of its lifetime
UFM.DEREF.MIGHTMEM50-CPP. Do not access freed memory
UFM.DEREF.MUSTEXP54-CPP. Do not access an object outside of its lifetime
UFM.DEREF.MUSTMEM50-CPP. Do not access freed memory
UFM.FFM.MIGHTEXP54-CPP. Do not access an object outside of its lifetime
UFM.FFM.MIGHTMEM50-CPP. Do not access freed memory
UFM.FFM.MUSTEXP54-CPP. Do not access an object outside of its lifetime
UFM.FFM.MUSTMEM50-CPP. Do not access freed memory
UFM.RETURN.MIGHTEXP54-CPP. Do not access an object outside of its lifetime
UFM.RETURN.MIGHTMEM50-CPP. Do not access freed memory
UFM.RETURN.MUSTEXP54-CPP. Do not access an object outside of its lifetime
UFM.RETURN.MUSTMEM50-CPP. Do not access freed memory
UFM.USE.MIGHTEXP54-CPP. Do not access an object outside of its lifetime
UFM.USE.MIGHTMEM50-CPP. Do not access freed memory
UFM.USE.MUSTEXP54-CPP. Do not access an object outside of its lifetime
UFM.USE.MUSTMEM50-CPP. Do not access freed memory
UNINIT.CTOR.MIGHTEXP53-CPP. Do not read uninitialized memory
UNINIT.CTOR.MIGHTMEM51-CPP. Properly deallocate dynamically allocated resources
UNINIT.CTOR.MUSTEXP53-CPP. Do not read uninitialized memory
UNINIT.CTOR.MUSTMEM51-CPP. Properly deallocate dynamically allocated resources
UNINIT.HEAP.MIGHTEXP53-CPP. Do not read uninitialized memory
UNINIT.HEAP.MIGHTEXP54-CPP. Do not access an object outside of its lifetime
UNINIT.HEAP.MIGHTMEM51-CPP. Properly deallocate dynamically allocated resources
UNINIT.HEAP.MUSTEXP53-CPP. Do not read uninitialized memory
UNINIT.HEAP.MUSTEXP54-CPP. Do not access an object outside of its lifetime
UNINIT.HEAP.MUSTMEM51-CPP. Properly deallocate dynamically allocated resources
UNINIT.STACK.ARRAY.MIGHTEXP53-CPP. Do not read uninitialized memory
UNINIT.STACK.ARRAY.MIGHTEXP54-CPP. Do not access an object outside of its lifetime
UNINIT.STACK.ARRAY.MUSTEXP53-CPP. Do not read uninitialized memory
UNINIT.STACK.ARRAY.MUSTEXP54-CPP. Do not access an object outside of its lifetime
UNINIT.STACK.ARRAY.PARTIAL.MUSTEXP53-CPP. Do not read uninitialized memory
UNINIT.STACK.ARRAY.PARTIAL.MUSTEXP54-CPP. Do not access an object outside of its lifetime
UNINIT.STACK.MIGHTEXP53-CPP. Do not read uninitialized memory
UNINIT.STACK.MIGHTEXP54-CPP. Do not access an object outside of its lifetime
UNINIT.STACK.MUSTEXP53-CPP. Do not read uninitialized memory
UNINIT.STACK.MUSTEXP54-CPP. Do not access an object outside of its lifetime