GitHub
CERT Secure Coding

Security Reviewer - Static Reviewer

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: 6.02

CheckerGuideline
arithOperationsOnVoidPointerAPI04-C. Provide a consistent and usable error-checking mechanism
arrayIndexOutOfBoundsCondARR30-C. Do not form or use out-of-bounds pointers or array subscripts
assignmentInAssertARR30-C. Do not form or use out-of-bounds pointers or array subscripts
autoVariablesARR30-C. Do not form or use out-of-bounds pointers or array subscripts
autovarInvalidDeallocationARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C01ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C02ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C03ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C04ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C05ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C06ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C07ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C08ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C08ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C09ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C10ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C11CON02-C. Do not use volatile as a synchronization primitive
C12CON05-C. Do not perform operations that can block while holding a lock
C13DCL03-C. Use a static assertion to test the value of a constant expression
C14DCL03-C. Use a static assertion to test the value of a constant expression
C15DCL03-C. Use a static assertion to test the value of a constant expression
C16DCL13-C. Declare function parameters that are pointers to values not changed by the function as const
C17FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C18DCL30-C. Declare objects with appropriate storage durations
C19DCL31-C. Declare identifiers before using them
C20DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C21DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C22DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C23DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C24ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
C25DCL39-C. Avoid information leakage when passing a structure across a trust boundary
C26DCL40-C. Do not create incompatible declarations of the same function or object
C27ENV30-C. Do not modify the object referenced by the return value of certain functions
C28ENV30-C. Do not modify the object referenced by the return value of certain functions
C29ENV30-C. Do not modify the object referenced by the return value of certain functions
C31ERR04-C. Choose an appropriate termination strategy
C32ERR05-C. Application-independent code should provide error detection without dictating error handling
C33ERR05-C. Application-independent code should provide error detection without dictating error handling
C34ERR32-C. Do not rely on indeterminate values of errno
C37EXP00-C. Use parentheses for precedence of operation
C37EXP08-C. Ensure pointer arithmetic is used correctly
C38EXP09-C. Use sizeof to determine the size of a type or variable
C39EXP09-C. Use sizeof to determine the size of a type or variable
C40EXP09-C. Use sizeof to determine the size of a type or variable
C42EXP09-C. Use sizeof to determine the size of a type or variable
C44EXP09-C. Use sizeof to determine the size of a type or variable
C45EXP09-C. Use sizeof to determine the size of a type or variable
C46EXP09-C. Use sizeof to determine the size of a type or variable
C46EXP09-C. Use sizeof to determine the size of a type or variable
C47EXP12-C. Do not ignore values returned by functions
C48EXP12-C. Do not ignore values returned by functions
C49ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
C50EXP30-C. Do not depend on the order of evaluation for side effects
C50EXP14-C. Beware of integer promotion when performing bitwise operations on integer types smaller than int
C51EXP19-C. Use braces for the body of an if, for, or while statement
C52DCL03-C. Use a static assertion to test the value of a constant expression
C54EXP33-C. Do not read uninitialized memory
C55EXP33-C. Do not read uninitialized memory
C56EXP33-C. Do not read uninitialized memory
C57EXP33-C. Do not read uninitialized memory
C58EXP33-C. Do not read uninitialized memory
C59EXP33-C. Do not read uninitialized memory
C60EXP33-C. Do not read uninitialized memory
C61EXP33-C. Do not read uninitialized memory
C62EXP33-C. Do not read uninitialized memory
C63EXP33-C. Do not read uninitialized memory
C64EXP34-C. Do not dereference null pointers
C65EXP34-C. Do not dereference null pointers
C66EXP34-C. Do not dereference null pointers
C67EXP36-C. Do not cast pointers into more strictly aligned pointer types
C68EXP36-C. Do not cast pointers into more strictly aligned pointer types
C69EXP36-C. Do not cast pointers into more strictly aligned pointer types
C70EXP36-C. Do not cast pointers into more strictly aligned pointer types
C71EXP37-C. Call functions with the correct number and type of arguments
C73EXP40-C. Do not modify constant objects
C73EXP46-C. Do not use a bitwise operator with a Boolean-like operand
C76FIO21-C. Do not create temporary files in shared directories
C77FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C78FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C79FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C80FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
C80FIO42-C. Close files when they are no longer needed
C81FIO47-C. Use valid format strings
C82FIO47-C. Use valid format strings
C83FIO47-C. Use valid format strings
C83FIO47-C. Use valid format strings
C84FIO47-C. Use valid format strings
C85FIO47-C. Use valid format strings
C86FIO47-C. Use valid format strings
C86FIO47-C. Use valid format strings
C87FLP03-C. Detect and handle floating-point errors
C88FLP34-C. Ensure that floating-point conversions are within range of the new type
C101ARR32-C. Ensure size arguments for variable length arrays are in a valid range
C107ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
C109ARR38-C. Guarantee that library functions do not form invalid pointers
C122CON40-C. Do not refer to an atomic variable twice in an expression
C123CON40-C. Do not refer to an atomic variable twice in an expression
C126DCL01-C. Do not reuse variable names in subscopes
C127DCL01-C. Do not reuse variable names in subscopes
C129DCL03-C. Use a static assertion to test the value of a constant expression
C130DCL03-C. Use a static assertion to test the value of a constant expression
C132DCL03-C. Use a static assertion to test the value of a constant expression
C133DCL03-C. Use a static assertion to test the value of a constant expression
C135DCL03-C. Use a static assertion to test the value of a constant expression
C154DCL03-C. Use a static assertion to test the value of a constant expression
C155DCL03-C. Use a static assertion to test the value of a constant expression
C176DCL30-C. Declare objects with appropriate storage durations
C177DCL30-C. Declare objects with appropriate storage durations
C178DCL30-C. Declare objects with appropriate storage durations
C179DCL30-C. Declare objects with appropriate storage durations
C999INT01-C. Use size_t or rsize_t for all integer values representing the size of an object
CbOBINT02-C. Understand integer conversion rules
CconstVariableINT02-C. Understand integer conversion rules
CdLTINT02-C. Understand integer conversion rules
CdoubleFreeINT02-C. Understand integer conversion rules
CduplicateConditionINT02-C. Understand integer conversion rules
CE6INT02-C. Understand integer conversion rules
CE6_SINT02-C. Understand integer conversion rules
CE7INT02-C. Understand integer conversion rules
CE8MSC25-C. Do not use insecure or weak cryptographic algorithms
CE11INT02-C. Understand integer conversion rules
CE12INT02-C. Understand integer conversion rules
CE13INT02-C. Understand integer conversion rules
CE256INT02-C. Understand integer conversion rules
CfCOINT02-C. Understand integer conversion rules
CinvalidLifetimeINT02-C. Understand integer conversion rules
CinvalidScanfArgType_intINT02-C. Understand integer conversion rules
CiRVINT02-C. Understand integer conversion rules
CiSFWINT02-C. Understand integer conversion rules
CknownConditionTrueFalseINT02-C. Understand integer conversion rules
clarifyCalculationINT08-C. Verify that all integer values are in range
ClRVNUINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CmADINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CmemleakOnReallocINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CmissingReturnINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CMRINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CmVOORINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CnASINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
CNIINT32-C. Ensure that operations on signed integers do not result in overflow
CPP_02INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
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
CPP_05INT36-C. Converting a pointer to integer or integer to pointer
CPP_07MEM03-C. Clear sensitive information stored in reusable resources
CPP_08MEM04-C. Beware of zero-length allocations
CPP_010MEM05-C. Avoid large stack allocations
CPP_11MEM10-C. Define and use a pointer validation function
CPP_12MEM30-C. Do not access freed memory
CPP_17MEM31-C. Free dynamically allocated memory when no longer needed
CPP_18MEM31-C. Free dynamically allocated memory when no longer needed
CPP_22MEM31-C. Free dynamically allocated memory when no longer needed
CPP_23MEM31-C. Free dynamically allocated memory when no longer needed
CPP_24MEM31-C. Free dynamically allocated memory when no longer needed
CPP_25MEM31-C. Free dynamically allocated memory when no longer needed
CPP_26MEM31-C. Free dynamically allocated memory when no longer needed
CPP_27MEM31-C. Free dynamically allocated memory when no longer needed
CPP_028MEM33-C. Allocate and copy structures containing a flexible array member dynamically
CPP_31MEM34-C. Only free memory allocated dynamically
CPP_32MEM34-C. Only free memory allocated dynamically
CPP_33MEM34-C. Only free memory allocated dynamically
CPP_34MEM34-C. Only free memory allocated dynamically
CPP_35MEM34-C. Only free memory allocated dynamically
CPP_36MEM34-C. Only free memory allocated dynamically
CPP_039MEM35-C. Allocate sufficient memory for an object
CPP_44MSC01-C. Strive for logical completeness
CPP_48MEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resources
CPP_57MSC07-C. Detect and remove dead code
CPP_58MSC07-C. Detect and remove dead code
CPP_59MSC07-C. Detect and remove dead code
CPP_60MSC07-C. Detect and remove dead code
CPP_61MSC07-C. Detect and remove dead code
CPP_62MSC07-C. Detect and remove dead code
CPP_uninitvarMSC07-C. Detect and remove dead code
CPPCryptMSC07-C. Detect and remove dead code
CPPDSLHardcodedMSC07-C. Detect and remove dead code
CPPDSLRANDMSC07-C. Detect and remove dead code
CPPDSLWESMSC07-C. Detect and remove dead code
CpPEDMSC07-C. Detect and remove dead code
CPPEnterCriticalSectionMSC07-C. Detect and remove dead code
CPPIsBadWritePtrMSC07-C. Detect and remove dead code
CPPLoadLibraryMSC07-C. Detect and remove dead code
CPPLoopMSC07-C. Detect and remove dead code
CPPOftenMisuredMSC09-C. Character encoding: Use subset of ASCII for safety
CPPPBEMSC11-C. Incorporate diagnostic tests using assertions
CPtrMSC12-C. Detect and remove code that has no effect or is never executed
CsFPCMSC18-C. Be careful while handling sensitive data, such as passwords, in program code
ctuNullPointerMSC20-C. Do not use a switch statement to transfer control into a complex block
ctuOneDefinitionRuleViolationMSC21-C. Use robust loop termination conditions
CuEVMSC24-C. Do not use deprecated or obsolescent functions
CvariableScopeMSC24-C. Do not use deprecated or obsolescent functions
CWE395TEST_2_CPPMSC24-C. Do not use deprecated or obsolescent functions
CWE561P25MSC24-C. Do not use deprecated or obsolescent functions
CwPSPPEMSC24-C. Do not use deprecated or obsolescent functions
CzDCMSC24-C. Do not use deprecated or obsolescent functions
deallocretMSC24-C. Do not use deprecated or obsolescent functions
integerOverflowCondMSC24-C. Do not use deprecated or obsolescent functions
invalidContainerMSC24-C. Do not use deprecated or obsolescent functions
invalidFunctionArgMSC24-C. Do not use deprecated or obsolescent functions
leakUnsafeArgAllocMSC24-C. Do not use deprecated or obsolescent functions
memleakMSC24-C. Do not use deprecated or obsolescent functions
memleakOnReallocMSC24-C. Do not use deprecated or obsolescent functions
noCopyConstructorMSC24-C. Do not use deprecated or obsolescent functions
noOperatorEqMSC24-C. Do not use deprecated or obsolescent functions
nullPointerRedundantCheckMSC24-C. Do not use deprecated or obsolescent functions
oppositeExpressionMSC25-C. Do not use insecure or weak cryptographic algorithms
redundantPointerOpMSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_01MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_02MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_03MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_04MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_05MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_06MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_07MSC30-C. Do not use the rand() function for generating pseudorandom numbers
RTOS_09MSC37-C. Ensure that control never reaches the end of a non-void function
RTOS_13MSC39-C. Do not call va_arg() on a va_list that has an indeterminate value
RTOS_14MSC41-C. Never hard code sensitive information
RTOS_18MSC25-C. Do not use insecure or weak cryptographic algorithms
RTOS_19POS01-C. Check for the existence of links when dealing with files
RTOS_20POS52-C. Do not perform operations that can block while holding a POSIX lock
RTOS_22PRE04-C. Do not reuse a standard header file name
RTOS_26PRE13-C. Use the Standard predefined macros to test for versions and features.
RTOS_27PRE30-C. Do not create a universal character name through concatenation
RTOS_28PRE31-C. Avoid side effects in arguments to unsafe macros
RTOS_31STR05-C. Use pointers to const when referring to string literals
RTOS_33STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
RTOS_34STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
shadowVariableSTR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
shiftTooManyBitsSTR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string
UNSAFE_01STR37-C. Arguments to character-handling functions must be representable as an unsigned char
UNSAFE_02STR38-C. Do not confuse narrow and wide character strings and functions
UNSAFE_03STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
UNSAFE_04STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
UNSAFE_05WIN02-C. Restrict privileges when spawning child processes