Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note

This page 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
Security Reviewer - Static Reviewer_V
Security Reviewer - Static Reviewer_V
API04-C. Provide a consistent Fully implemented CTR52-CPP. Guarantee that library functions do not overflowARR30CTR52-CPP. Guarantee that library functions do not overflow Fully implementedFully implementedDCL03-C. EXP30 Do not depend on the order of evaluation for side effectsFully implemented

Checker

Guideline

arithOperationsOnVoidPointer API04-C. Provide a consistent
CheckerCERT-CCERT-CPPDescription
arithOperationsOnVoidPointer
and usable error-checking mechanism
Fully implemented
arrayIndexOutOfBoundsCond ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
 
assignmentInAssert ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Fully implemented
autoVariables ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Fully implemented
autovarInvalidDeallocation ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Fully implemented
C01 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Fully implemented
C02 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
 Fully implemented
C03 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
 Fully implemented
C04 ARR30
C04
-C. Do not form or use out-of-bounds pointers or array subscripts
Fully implemented
C05 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Fully implemented
C06 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Fully implemented
C07 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C08 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
 
C08 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
 Fully implemented
C09 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Fully implemented
C10 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Fully implemented
C101ARR32-C. Ensure size arguments for variable length arrays are in a valid range Fully implemented
C107ARR36-C. Do not subtract or compare two pointers that do not refer to the same array Fully implemented
C109ARR38-C. Guarantee that library functions do not form invalid pointersFully implementedC11CON02-C. Do not use volatile as a synchronization primitiveFully implementedC12CON05-C. Do not perform operations that can block while holding a lockFully implementedC122CON40-C. Do not refer to an atomic variable twice in an expressionFully implementedC123CON40-C. Do not refer to an atomic variable twice in an expressionFully implementedC126DCL01-C. Do not reuse variable names in subscopesFully implementedC127DCL01-C. Do not reuse variable names in subscopesFully implementedC129DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC13DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC130DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC132DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC133DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC135DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC14DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC15DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC154DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC155DCL03-C. Use a static assertion to test the value of a constant expressionFully implementedC16DCL13-C. Declare function parameters that are pointers to values not changed by the function as constFully implemented
C17FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning callFIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning callFully implemented
C176DCL30-C. Declare objects with appropriate storage durations Fully implemented
C177DCL30-C. Declare objects with appropriate storage durations Fully implemented
C178DCL30-C. Declare objects with appropriate storage durations Fully implemented
C179DCL30-C. Declare objects with appropriate storage durations Fully implemented
C18DCL30-C. Declare objects with appropriate storage durations Fully implemented
C19DCL31-C. Declare identifiers before using themFully implementedC20DCL39-C. Avoid information leakage when passing a structure across a trust boundaryFully implementedC21DCL39-C. Avoid information leakage when passing a structure across a trust boundaryFully implementedC22DCL39-C. Avoid information leakage when passing a structure across a trust boundaryFully implementedC23DCL39-C. Avoid information leakage when passing a structure across a trust boundaryFully implemented
C24ARR36-C. Do not subtract or compare two pointers that do not refer to the same arraySTR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_stringFully implemented
C25DCL39-C. Avoid information leakage when passing a structure across a trust boundaryFully implementedC26DCL40-C. Do not create incompatible declarations of the same function or objectFully implementedC27ENV30-C. Do not modify the object referenced by the return value of certain functionsFully implementedC28ENV30-C. Do not modify the object referenced by the return value of certain functionsFully implementedC29ENV30-C. Do not modify the object referenced by the return value of certain functionsFully implementedC31ERR04-C. Choose an appropriate termination strategyFully implementedC32ERR05-C. Application-independent code should provide error detection without dictating error handlingFully implementedC32ERR05-C. Application-independent code should provide error detection without dictating error handlingFully implementedC33ERR05-C. Application-independent code should provide error detection without dictating error handlingFully implementedC33ERR05-C. Application-independent code should provide error detection without dictating error handlingFully implementedC34ERR32-C. Do not rely on indeterminate values of errnoFully implementedC35ERR51-CPP. Handle all exceptionsFully implementedC36EXP00-C. Use parentheses for precedence of operationFully implementedC37EXP08-C. Ensure pointer arithmetic is used correctlyFully implementedC38EXP09-C. Use sizeof to determine the size of a type or variableFully implementedC39EXP09-C. Use sizeof to determine the size of a type or variableFully implementedC40EXP09-C. Use sizeof to determine the size of a type or variableFully implementedC42EXP09-C. Use sizeof to determine the size of a type or variableFully implementedC44EXP09-C. Use sizeof to determine the size of a type or variableFully implementedC45EXP09-C. Use sizeof to determine the size of a type or variableFully implementedC46EXP09-C. Use sizeof to determine the size of a type or variableFully implementedC46EXP09-C. Use sizeof to determine the size of a type or variableFully implemented
C47EXP12-C. Do not ignore values returned by functions Fully implemented
C48EXP12-C. Do not ignore values returned by functions Fully implemented
C49ARR30-C. Do not form or use out-of-bounds pointers or array subscriptsFully implementedC50EXP14-C. Beware of integer promotion when performing bitwise operations on integer types smaller than intFully implemented
C11 CON02-C. Do not use volatile as a synchronization primitive
C12 CON05-C. Do not perform operations that can block while holding a lock
C13 DCL03-C. Use a static assertion to test the value of a constant expression
C14 DCL03-C. Use a static assertion to test the value of a constant expression
C15 DCL03-C. Use a static assertion to test the value of a constant expression
C16 DCL13-C. Declare function parameters that are pointers to values not changed by the function as const
C17 FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C18 DCL30-C. Declare objects with appropriate storage durations
C19 DCL31-C. Declare identifiers before using them
C20 DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C21 DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C22 DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C23 DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C24 ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
C25 DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C26 DCL40-C. Do not create incompatible declarations of the same function or object
C31 ERR04-C. Choose an appropriate termination strategy
C32 ERR05-C. Application-independent code should provide error detection without dictating error handling
C33 ERR05-C. Application-independent code should provide error detection without dictating error handling
C34 ERR32-C. Do not rely on indeterminate values of errno
C37 EXP00-C. Use parentheses for precedence of operation
C38 EXP09-C. Use sizeof to determine the size of a type or variable
C39 EXP09-C. Use sizeof to determine the size of a type or variable
C40 EXP09-C. Use sizeof to determine the size of a type or variable
C42 EXP09-C. Use sizeof to determine the size of a type or variable
C44 EXP09-C. Use sizeof to determine the size of a type or variable
C45 EXP09-C. Use sizeof to determine the size of a type or variable
C46 EXP09-C. Use sizeof to determine the size of a type or variable
C46 EXP09-C. Use sizeof to determine the size of a type or variable
C47 EXP12-C. Do not ignore values returned by functions
C48 EXP12-C. Do not ignore values returned by functions
C49 ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C50 EXP30-C. Do not depend on the order of evaluation for side effects
C50 EXP14-C. Beware of integer promotion when performing bitwise operations on integer types smaller than int
C51 EXP19-C. Use braces for the body of an if, for, or while statement
C52 DCL03-C. Use a static assertion to test the value of a constant expression
C54 EXP33-C. Do not read uninitialized memory
C55 EXP33-C. Do not read uninitialized memory
C56 EXP33-C. Do not read uninitialized memory
C57 EXP33-C. Do not read uninitialized memory
C58 EXP33-C. Do not read uninitialized memory
C59 EXP33-C. Do not read uninitialized memory
C60 EXP33-C. Do not read uninitialized memory
C61 EXP33-C. Do not read uninitialized memory
C62 EXP33-C. Do not read uninitialized memory
C63 EXP33-C. Do not read uninitialized memory
C64 EXP34-C. Do not dereference null pointers
C65 EXP34-C. Do not dereference null pointers
C66 EXP34-C. Do not dereference null pointers
C67 EXP36-C. Do not cast pointers into more strictly aligned pointer types
C68 EXP36-C. Do not cast pointers into more strictly aligned pointer types
C69 EXP36-C. Do not cast pointers into more strictly aligned pointer types
C70 EXP36-C. Do not cast pointers into more strictly aligned pointer types
C77 FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C78 FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C79 FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C80 FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C80 FIO42-C. Close files when they are no longer needed
C81 FIO47-C. Use valid format strings
C82 FIO47-C. Use valid format strings
C83 FIO47-C. Use valid format strings
C83 FIO47-C. Use valid format strings
C84 FIO47-C. Use valid format strings
C85 FIO47-C. Use valid format strings
C86 FIO47-C. Use valid format strings
C86 FIO47-C. Use valid format strings
C101 ARR32-C. Ensure size arguments for variable length arrays are in a valid range
C107 ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
C109 ARR38-C. Guarantee that library functions do not form invalid pointers
C122 CON40-C. Do not refer to an atomic variable twice in an expression
C123 CON40-C. Do not refer to an atomic variable twice in an expression
C126 DCL01-C. Do not reuse variable names in subscopes
C127 DCL01-C. Do not reuse variable names in subscopes
C129 DCL03-C.
C51EXP19-C. Use braces for the body of an if, for, or while statementFully implementedC52
Use a static assertion to test the value of a constant expression
Fully implementedC53
C130 DCL03-C.
EXP50-CPP. Do not depend on the order of evaluation for side effectsFully implemented
C54EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C55EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C56EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C57EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C58EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C59EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C60EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C61EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C62EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C63EXP33-C. Do not read uninitialized memoryEXP53-CPP. Do not read uninitialized memoryFully implemented
C64EXP34-C. Do not dereference null pointers Fully implemented
C64EXP34-C. Do not dereference null pointersFully implementedC65EXP34-C. Do not dereference null pointersFully implementedC65EXP34-C. Do not dereference null pointersFully implemented
C66EXP34-C. Do not dereference null pointers Fully implemented
C67EXP36-C. Do not cast pointers into more strictly aligned pointer typesFully implementedC68EXP36-C. Do not cast pointers into more strictly aligned pointer typesFully implementedC69EXP36-C. Do not cast pointers into more strictly aligned pointer typesFully implementedC70EXP36-C. Do not cast pointers into more strictly aligned pointer typesFully implementedC71EXP37-C. Call functions with the correct number and type of argumentsFully implementedC73EXP40-C. Do not modify constant objectsFully implemented
C73EXP46-C. Do not use a bitwise operator with a Boolean-like operand Fully implemented
C74EXP46-C. Do not use a bitwise operator with a Boolean-like operandFully implementedC75EXP47-C. Do not call va_arg with an argument of the incorrect typeFully implementedC76FIO21-C. Do not create temporary files in shared directoriesFully implemented
C77FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call Fully implemented
C78FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call Fully implemented
C79FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning callFully implemented
C80FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call Fully implemented
C80FIO42-C. Close files when they are no longer neededFIO51-CPP. Close files when they are no longer neededFully implemented
C81FIO47-C. Use valid format strings Fully implemented
C82FIO47-C. Use valid format strings Fully implemented
C83FIO47-C. Use valid format strings Fully implemented
C83FIO47-C. Use valid format strings Fully implemented
C84FIO47-C. Use valid format strings Fully implemented
C85FIO47-C. Use valid format strings Fully implemented
C86FIO47-C. Use valid format strings Fully implemented
C86FIO47-C. Use valid format stringsFully implementedC87FLP03-C. Detect and handle floating-point errorsFully implemented
c88FLP34-C. Ensure that floating-point conversions are within range of the new type Fully implemented
C92FLP34-C. Ensure that floating-point conversions are within range of the new type Fully implemented
C999INT01-C. Use size_t or rsize_t for all integer values representing the size of an objectFully implemented
Use a static assertion to test the value of a constant expression
C132 DCL03-C. Use a static assertion to test the value of a constant expression
C133 DCL03-C. Use a static assertion to test the value of a constant expression
C135 DCL03-C. Use a static assertion to test the value of a constant expression
C154 DCL03-C. Use a static assertion to test the value of a constant expression
C155 DCL03-C. Use a static assertion to test the value of a constant expression
C176 DCL30-C. Declare objects with appropriate storage durations
C177 DCL30-C. Declare objects with appropriate storage durations
C178 DCL30-C. Declare objects with appropriate storage durations
C179 DCL30-C. Declare objects with appropriate storage durations
CbOB INT02-C. Understand integer conversion rules
CconstVariable INT02-C. Understand integer conversion rules
CdLT INT02-C. Understand integer conversion rules
CdoubleFree INT02-C. Understand integer conversion rules
CduplicateCondition INT02-C. Understand integer conversion rules
CE6 INT02-C. Understand integer conversion rules
CE6_S INT02-C. Understand integer conversion rules
CE7 INT02-C. Understand integer conversion rules
CE8 MSC25-C. Do not use insecure or weak cryptographic algorithms
CE11 INT02-C. Understand integer conversion rules
CE12 INT02-C. Understand integer conversion rules
CE13 INT02-C. Understand integer conversion rules
CE256 INT02-C. Understand integer conversion rules
CfCO INT02-C. Understand integer conversion rules
CinvalidLifetime INT02-C. Understand integer conversion rules
CinvalidScanfArgType_int INT02-C. Understand integer conversion rules
CiRV INT02-C. Understand integer conversion rules
CiSFW INT02-C. Understand integer conversion rules
CknownConditionTrueFalse INT02-C. Understand integer conversion rules
ClRVNU INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CmAD INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CmemleakOnRealloc INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CmissingReturn INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CMR INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CmVOOR INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CnAS INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CPP_17 MEM31-C. Free dynamically allocated memory when no longer needed
CPP_18 MEM31-C. Free dynamically allocated memory when no longer needed
CPP_22 MEM31-C. Free dynamically allocated memory when no longer needed
CPP_23 MEM31-C. Free dynamically allocated memory when no longer needed
CPP_24 MEM31-C. Free dynamically allocated memory when no longer needed
CPP_25 MEM31-C. Free dynamically allocated memory when no longer needed
CPP_26 MEM31-C. Free dynamically allocated memory when no longer needed
CPP_27 MEM31-C. Free dynamically allocated memory when no longer needed
CPP_31 MEM34-C. Only free memory allocated dynamically
CPP_32 MEM34-C. Only free memory allocated dynamically
CPP_33 MEM34-C. Only free memory allocated dynamically
CPP_34 MEM34-C. Only free memory allocated dynamically
CPP_35 MEM34-C. Only free memory allocated dynamically
CPP_36 MEM34-C. Only free memory allocated dynamically
CPP_57 MSC07-C. Detect and remove dead code
CPP_58 MSC07-C. Detect and remove dead code
CPP_59 MSC07-C. Detect and remove dead code
CPP_60 MSC07-C. Detect and remove dead code
CPP_61 MSC07-C. Detect and remove dead code
CPP_62 MSC07-C. Detect and remove dead code
CPP_uninitvar MSC07-C. Detect and remove dead code
CPPCrypt MSC07-C. Detect and remove dead code
CPPDSLHardcoded MSC07-C. Detect and remove dead code
CPPDSLRAND MSC07-C. Detect and remove dead code
CPPDSLWES MSC07-C. Detect and remove dead code
CpPED MSC07-C. Detect and remove dead code
CPPEnterCriticalSection MSC07-C. Detect and remove dead code
CPPIsBadWritePtr MSC07-C. Detect and remove dead code
CPPLoadLibrary MSC07-C. Detect and remove dead code
CPPLoop MSC07-C. Detect and remove dead code
CuEV MSC24-C. Do not use deprecated or obsolescent functions
CvariableScope MSC24-C. Do not use deprecated or obsolescent functions
CWE395TEST_2_CPP MSC24-C. Do not use deprecated or obsolescent functions
CWE561P25 MSC24-C. Do not use deprecated or obsolescent functions
CwPSPPE MSC24-C. Do not use deprecated or obsolescent functions
CzDC MSC24-C. Do not use deprecated or obsolescent functions
deallocret MSC24-C. Do not use deprecated or obsolescent functions
integerOverflowCond MSC24-C. Do not use deprecated or obsolescent functions
invalidContainer MSC24-C. Do not use deprecated or obsolescent functions
invalidFunctionArg MSC24-C. Do not use deprecated or obsolescent functions
leakUnsafeArgAlloc MSC24-C. Do not use deprecated or obsolescent functions
memleak MSC24-C. Do not use deprecated or obsolescent functions
memleakOnRealloc MSC24-C. Do not use deprecated or obsolescent functions
noCopyConstructor MSC24-C. Do not use deprecated or obsolescent functions
noOperatorEq MSC24-C. Do not use deprecated or obsolescent functions
nullPointerRedundantCheck MSC24-C. Do not use deprecated or obsolescent functions
oppositeExpression MSC25-C. Do not use insecure or weak cryptographic algorithms
redundantPointerOp MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_01 MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_02 MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_03 MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_04 MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_05 MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_06 MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_18 MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_33 STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
RTOS_34 STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
shadowVariable STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
shiftTooManyBits STR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string
UNSAFE_01 STR37-C. Arguments to character-handling functions must be representable as an unsigned char
UNSAFE_02 STR38-C. Do not confuse narrow and wide character strings and functions
UNSAFE_03 STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
UNSAFE_04 STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
UNSAFE_05 WIN02-C. Restrict privileges when spawning child processes
CbOBINT02-C. Understand integer conversion rulesFully implementedCconstVariableINT02-C. Understand integer conversion rulesFully implementedCdLTINT02-C. Understand integer conversion rulesFully implementedCdoubleFreeINT02-C. Understand integer conversion rulesFully implementedCduplicateConditionINT02-C. Understand integer conversion rulesFully implementedCE8MSC25-C. Do not use insecure or weak cryptographic algorithmsFully implementedCE11INT02-C. Understand integer conversion rulesFully implementedCE12INT02-C. Understand integer conversion rulesFully implementedCE13INT02-C. Understand integer conversion rulesFully implementedCE256INT02-C. Understand integer conversion rulesFully implementedCE6INT02-C. Understand integer conversion rulesFully implementedCE6_SINT02-C. Understand integer conversion rulesFully implementedCE7INT02-C. Understand integer conversion rulesFully implementedCfCOINT02-C. Understand integer conversion rulesFully implementedCinvalidLifetimeINT02-C. Understand integer conversion rulesFully implementedCinvalidScanfArgType_intINT02-C. Understand integer conversion rulesFully implementedCiRVINT02-C. Understand integer conversion rulesFully implementedCiSFWINT02-C. Understand integer conversion rulesFully implementedCknownConditionTrueFalseINT02-C. Understand integer conversion rulesFully implementedclarifyCalculationINT08-C. Verify that all integer values are in rangeFully implementedClRVNUINT31-C. Ensure that integer conversions do not result in lost or misinterpreted dataFully implementedCmADINT31-C. Ensure that integer conversions do not result in lost or misinterpreted dataFully implementedCmemleakOnReallocINT31-C. Ensure that integer conversions do not result in lost or misinterpreted dataFully implementedCmissingReturnINT31-C. Ensure that integer conversions do not result in lost or misinterpreted dataFully implementedCMRINT31-C. Ensure that integer conversions do not result in lost or misinterpreted dataFully implemented
CmVOORINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data Fully implemented
CnASINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data Fully implemented
CNIINT32-C. Ensure that operations on signed integers do not result in overflowFully implementedCnPDAINT32-C. Ensure that operations on signed integers do not result in overflowFully implementedConfigurationNotCheckedINT32-C. Ensure that operations on signed integers do not result in overflowFully implementedconstParameterINT33-C. Ensure that division and remainder operations do not result in divide-by-zero errorsFully implementedCoOBINT33-C. Ensure that division and remainder operations do not result in divide-by-zero errorsFully implemented
CPP_01INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors Fully implemented
CPP_02INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errorsFully implemented
CPP_03INT34-C. Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand Fully implemented
CPP_04INT34-C. Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand Fully implemented
CPP_05INT36-C. Converting a pointer to integer or integer to pointerFully implementedCPP_06INT36-C. Converting a pointer to integer or integer to pointerFully implementedCPP_07MEM03-C. Clear sensitive information stored in reusable resourcesFully implementedCPP_08MEM04-C. Beware of zero-length allocationsFully implementedCPP_09MEM04-C. Beware of zero-length allocationsFully implementedCPP_10MEM05-C. Avoid large stack allocationsFully implementedCPP_11MEM10-C. Define and use a pointer validation functionFully implemented
CPP_12MEM30-C. Do not access freed memoryMEM50-CPP. Do not access freed memoryFully implemented
CPP_14MEM30-C. Do not access freed memoryMEM50-CPP. Do not access freed memoryFully implemented
CPP_15MEM30-C. Do not access freed memoryMEM50-CPP. Do not access freed memoryFully implemented
CPP_17MEM31-C. Free dynamically allocated memory when no longer needed Fully implemented
CPP_18MEM31-C. Free dynamically allocated memory when no longer needed Fully implemented
CPP_22MEM31-C. Free dynamically allocated memory when no longer neededFully implementedCPP_23MEM31-C. Free dynamically allocated memory when no longer neededFully implemented
CPP_24MEM31-C. Free dynamically allocated memory when no longer needed Fully implemented
CPP_25MEM31-C. Free dynamically allocated memory when no longer needed Fully implemented
CPP_26MEM31-C. Free dynamically allocated memory when no longer needed Fully implemented
CPP_27MEM31-C. Free dynamically allocated memory when no longer needed Fully implemented
CPP_28MEM33-C. Allocate and copy structures containing a flexible array member dynamicallyMEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetimeFully implemented
CPP_29MEM33-C. Allocate and copy structures containing a flexible array member dynamicallyMEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetimeFully implemented
CPP_31MEM34-C. Only free memory allocated dynamically Fully implemented
CPP_32MEM34-C. Only free memory allocated dynamicallyFully implementedCPP_33MEM34-C. Only free memory allocated dynamicallyFully implemented
CPP_34MEM34-C. Only free memory allocated dynamically Fully implemented
CPP_35MEM34-C. Only free memory allocated dynamicallyFully implementedCPP_36MEM34-C. Only free memory allocated dynamicallyFully implementedCPP_39MEM35-C. Allocate sufficient memory for an objectFully implementedCPP_40MEM35-C. Allocate sufficient memory for an objectFully implementedCPP_41MEM35-C. Allocate sufficient memory for an objectFully implementedCPP_42MEM50-CPP. Do not access freed memoryFully implementedCPP_43MEM50-CPP. Do not access freed memoryFully implementedCPP_44MSC01-C. Strive for logical completenessFully implementedCPP_45MSC01-C. Strive for logical completenessFully implementedCPP_46MSC01-C. Strive for logical completenessFully implementedCPP_47MSC01-C. Strive for logical completenessFully implementedCPP_48MEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resourcesFully implementedCPP_55MEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resourcesFully implementedCPP_56MEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resourcesFully implementedCPP_57MSC07-C. Detect and remove dead codeFully implementedCPP_58MSC07-C. Detect and remove dead codeFully implementedCPP_59MSC07-C. Detect and remove dead codeFully implementedCPP_60MSC07-C. Detect and remove dead codeFully implementedCPP_61MSC07-C. Detect and remove dead codeFully implementedCPP_62MSC07-C. Detect and remove dead codeFully implementedCPP_uninitvarMSC07-C. Detect and remove dead codeFully implementedCPPCryptMSC07-C. Detect and remove dead codeFully implementedCPPDSLHardcodedMSC07-C. Detect and remove dead codeFully implementedCPPDSLRANDMSC07-C. Detect and remove dead codeFully implementedCPPDSLWESMSC07-C. Detect and remove dead codeFully implementedCpPEDMSC07-C. Detect and remove dead codeFully implementedCPPEnterCriticalSectionMSC07-C. Detect and remove dead codeFully implementedCPPIsBadWritePtrMSC07-C. Detect and remove dead codeFully implementedCPPLoadLibraryMSC07-C. Detect and remove dead codeFully implementedCPPLoopMSC07-C. Detect and remove dead codeFully implementedCPPOftenMisusedMSC09-C. Character encoding: Use subset of ASCII for safetyFully implementedCPPPBEMSC11-C. Incorporate diagnostic tests using assertionsFully implementedCPPStackBasedMSC11-C. Incorporate diagnostic tests using assertionsFully implementedCPtrMSC12-C. Detect and remove code that has no effect or is never executedFully implementedCredundantInitializationMSC12-C. Detect and remove code that has no effect or is never executedFully implementedCreturnDanglingLifetimeMSC12-C. Detect and remove code that has no effect or is never executedFully implementedCsFPCMSC18-C. Be careful while handling sensitive data, such as passwords, in program codeFully implementedCsTMBMSC18-C. Be careful while handling sensitive data, such as passwords, in program codeFully implementedCstrdupCalledMSC18-C. Be careful while handling sensitive data, such as passwords, in program codeFully implementedctuArrayIndexMSC18-C. Be careful while handling sensitive data, such as passwords, in program codeFully implementedctuNullPointerMSC20-C. Do not use a switch statement to transfer control into a complex blockFully implementedctuOneDefinitionRuleViolationMSC21-C. Use robust loop termination conditionsFully implementedCuEVMSC24-C. Do not use deprecated or obsolescent functionsFully implementedCvariableScopeMSC24-C. Do not use deprecated or obsolescent functionsFully implementedCWE395TEST_2_CPPMSC24-C. Do not use deprecated or obsolescent functionsFully implementedCWE561P25MSC24-C. Do not use deprecated or obsolescent functionsFully implementedCwPSPPEMSC24-C. Do not use deprecated or obsolescent functionsFully implementedCzDCMSC24-C. Do not use deprecated or obsolescent functionsFully implementeddeallocretMSC24-C. Do not use deprecated or obsolescent functionsFully implementedintegerOverflowCondMSC24-C. Do not use deprecated or obsolescent functionsFully implementedinvalidContainerMSC24-C. Do not use deprecated or obsolescent functionsFully implementedinvalidFunctionArgMSC24-C. Do not use deprecated or obsolescent functionsFully implementedleakUnsafeArgAllocMSC24-C. Do not use deprecated or obsolescent functionsFully implementedmemleakMSC24-C. Do not use deprecated or obsolescent functionsFully implementedmemleakOnReallocMSC24-C. Do not use deprecated or obsolescent functionsFully implementednoCopyConstructorMSC24-C. Do not use deprecated or obsolescent functionsFully implementednoOperatorEqMSC24-C. Do not use deprecated or obsolescent functionsFully implementednullPointerRedundantCheckMSC24-C. Do not use deprecated or obsolescent functionsFully implementedoppositeExpressionMSC25-C. Do not use insecure or weak cryptographic algorithmsFully implementedredundantPointerOpMSC25-C. Do not use insecure or weak cryptographic algorithmsFully implementedRTOS_01MSC25-C. Do not use insecure or weak cryptographic algorithmsFully implementedRTOS_02MSC25-C. Do not use insecure or weak cryptographic algorithmsFully implementedRTOS_03MSC25-C. Do not use insecure or weak cryptographic algorithmsFully implementedRTOS_04MSC25-C. Do not use insecure or weak cryptographic algorithmsFully implementedRTOS_05MSC25-C. Do not use insecure or weak cryptographic algorithmsFully implementedRTOS_06MSC25-C. Do not use insecure or weak cryptographic algorithmsFully implemented
RTOS_07MSC30-C. Do not use the rand() function for generating pseudorandom numbersMSC50-CPP. Do not use std::rand() for generating pseudorandom numbersFully implemented
RTOS_08MSC32-C. Properly seed pseudorandom number generatorsMSC51-CPP. Ensure your random number generator is properly seededFully implemented
RTOS_09MSC37-C. Ensure that control never reaches the end of a non-void functionMSC52-CPP. Value-returning functions must return a value from all exit pathsFully implemented
RTOS_10MSC37-C. Ensure that control never reaches the end of a non-void functionMSC52-CPP. Value-returning functions must return a value from all exit pathsFully implemented
RTOS_11MSC37-C. Ensure that control never reaches the end of a non-void functionMSC52-CPP. Value-returning functions must return a value from all exit pathsFully implemented
RTOS_12MSC37-C. Ensure that control never reaches the end of a non-void functionMSC52-CPP. Value-returning functions must return a value from all exit pathsFully implemented
RTOS_13MSC39-C. Do not call va_arg() on a va_list that has an indeterminate valueFully implementedRTOS_14MSC41-C. Never hard code sensitive informationFully implementedRTOS_15MSC41-C. Never hard code sensitive informationFully implementedRTOS_16MSC41-C. Never hard code sensitive informationFully implementedRTOS_17MSC41-C. Never hard code sensitive informationFully implementedRTOS_18MSC25-C. Do not use insecure or weak cryptographic algorithmsFully implementedRTOS_19POS01-C. Check for the existence of links when dealing with filesFully implementedRTOS_20POS52-C. Do not perform operations that can block while holding a POSIX lockFully implementedRTOS_22PRE04-C. Do not reuse a standard header file nameFully implementedRTOS_23PRE04-C. Do not reuse a standard header file nameFully implementedRTOS_24PRE04-C. Do not reuse a standard header file nameFully implementedRTOS_25PRE04-C. Do not reuse a standard header file nameFully implementedRTOS_26PRE13-C. Use the Standard predefined macros to test for versions and features.Fully implemented
RTOS_27PRE30-C. Do not create a universal character name through concatenation Fully implemented
RTOS_28PRE31-C. Avoid side effects in arguments to unsafe macrosFully implementedRTOS_29PRE31-C. Avoid side effects in arguments to unsafe macrosFully implementedRTOS_30PRE31-C. Avoid side effects in arguments to unsafe macrosFully implementedRTOS_31STR05-C. Use pointers to const when referring to string literalsFully implemented
RTOS_33STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminatorSTR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminatorFully implemented
RTOS_34STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminatorSTR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminatorFully implemented
shadowVariableSTR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminatorSTR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminatorFully implemented
shiftTooManyBitsSTR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a stringSTR51-CPP. Do not attempt to create a std::string from a null pointerFully implemented
UNSAFE_01STR37-C. Arguments to character-handling functions must be representable as an unsigned charFully implementedUNSAFE_02STR38-C. Do not confuse narrow and wide character strings and functionsFully implemented
UNSAFE_03STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminatorSTR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminatorFully implemented
UNSAFE_04STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminatorSTR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminatorFully implemented
UNSAFE_05WIN02-C. Restrict privileges when spawning child processesFully implementedUNSAFE_06OOP52-CPP. Do not delete a polymorphic object without a virtual destructorFully implementedUNSAFE_07OOP50-CPP. Do not invoke virtual functions from constructors or destructorsFully implementedUNSAFE_08CON53-CPP. Avoid deadlock by locking in a predefined orderFully implementedUNSAFE_09DCL50-CPP. Do not define a C-style variadic functionFully implementedva_end_missingERR59-CPP. Do not throw an exception across execution boundariesFully implementedva_start_subsequentCallsMEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointerFully implementedwcsdupCalledMEM51-CPP. Properly deallocate dynamically allocated resourcesFully implementedzerodiv