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_ARRAYARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.ANY_SIZE_ARRAYARR00-C. Understand how arrays work
ABV.ANY_SIZE_ARRAYENV01-C. Do not make assumptions about the size of an environment variable
ABV.GENERALARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.GENERALARR38-C. Guarantee that library functions do not form invalid pointers
ABV.GENERALPOS30-C. Use the readlink() function properly
ABV.GENERALARR00-C. Understand how arrays work
ABV.GENERALENV01-C. Do not make assumptions about the size of an environment variable
ABV.GENERALEXP08-C. Ensure pointer arithmetic is used correctly
ABV.GENERAL.MULTIDIMENSIONARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.GENERAL.MULTIDIMENSIONARR38-C. Guarantee that library functions do not form invalid pointers
ABV.GENERAL.MULTIDIMENSIONPOS30-C. Use the readlink() function properly
ABV.GENERAL.MULTIDIMENSIONARR00-C. Understand how arrays work
ABV.GENERAL.MULTIDIMENSIONENV01-C. Do not make assumptions about the size of an environment variable
ABV.GENERAL.MULTIDIMENSIONEXP08-C. Ensure pointer arithmetic is used correctly
ABV.ITERATORARR00-C. Understand how arrays work
ABV.ITERATORENV01-C. Do not make assumptions about the size of an environment variable
ABV.ITERATOREXP08-C. Ensure pointer arithmetic is used correctly
ABV.MEMBERARR00-C. Understand how arrays work
ABV.MEMBERENV01-C. Do not make assumptions about the size of an environment variable
ABV.NON_ARRAYARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.STACKARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.STACKARR00-C. Understand how arrays work
ABV.STACKENV01-C. Do not make assumptions about the size of an environment variable
ABV.TAINTEDARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.TAINTEDARR00-C. Understand how arrays work
ABV.TAINTEDENV01-C. Do not make assumptions about the size of an environment variable
ABV.UNICODE.BOUND_MAPARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.UNICODE.BOUND_MAPARR00-C. Understand how arrays work
ABV.UNICODE.BOUND_MAPENV01-C. Do not make assumptions about the size of an environment variable
ABV.UNICODE.FAILED_MAPARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.UNICODE.FAILED_MAPARR00-C. Understand how arrays work
ABV.UNICODE.FAILED_MAPENV01-C. Do not make assumptions about the size of an environment variable
ABV.UNICODE.NNTS_MAPARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.UNICODE.NNTS_MAPARR00-C. Understand how arrays work
ABV.UNICODE.NNTS_MAPENV01-C. Do not make assumptions about the size of an environment variable
ABV.UNICODE.SELF_MAPARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.UNICODE.SELF_MAPARR00-C. Understand how arrays work
ABV.UNICODE.SELF_MAPENV01-C. Do not make assumptions about the size of an environment variable
ABV.UNKNOWN_SIZEARR30-C. Do not form or use out-of-bounds pointers or array subscripts
ABV.UNKNOWN_SIZEARR00-C. Understand how arrays work
ABV.UNKNOWN_SIZEENV01-C. Do not make assumptions about the size of an environment variable
ASSIGCOND.CALLEXP45-C. Do not perform assignments in selection statements
ASSIGCOND.GENEXP45-C. Do not perform assignments in selection statements
AUTOSAR.STDLIB.CCTYPE.UCHARSTR37-C. Arguments to character-handling functions must be representable as an unsigned char
AUTOSAR.STDLIB.MEMORYMEM36-C. Do not modify the alignment of objects by calling realloc()
BYTEORDER.HTON.SENDPOS39-C. Use the correct byte ordering when transferring data between systems
BYTEORDER.HTON.WRITEPOS39-C. Use the correct byte ordering when transferring data between systems
BYTEORDER.NTOH.READPOS39-C. Use the correct byte ordering when transferring data between systems
BYTEORDER.NTOH.RECVPOS39-C. Use the correct byte ordering when transferring data between systems
CERT.ALIGNOFMSC14-C. Do not introduce unnecessary platform dependencies
CERT.ANONYMOUS.STRUCTMSC14-C. Do not introduce unnecessary platform dependencies
CERT.ANONYMOUS.UNIONMSC14-C. Do not introduce unnecessary platform dependencies
CERT.ARR.PTR.ARITHARR37-C. Do not add or subtract an integer to a pointer to a non-array object
CERT.ARR.PTR.ARITHARR39-C. Do not add or subtract a scaled integer to a pointer
CERT.ARRAY.LENGTH.ZEROMSC14-C. Do not introduce unnecessary platform dependencies
CERT.BITFIELD.NOT.INTMSC14-C. Do not introduce unnecessary platform dependencies
CERT.BITFIELD.SIGN.MODIFIERMSC14-C. Do not introduce unnecessary platform dependencies
CERT.CHROOTPOS05-C. Limit access to files by creating a jail
CERT.CHROOT.CHDIRPOS05-C. Limit access to files by creating a jail
CERT.CONC.ATOMIC_COMP_FAIL_IN_LOOPCON41-C. Wrap functions that can fail spuriously in a loop
CERT.CONC.ATOMIC_TWICE_EXPRCON40-C. Do not refer to an atomic variable twice in an expression
CERT.CONC.LIB_FUNC_USECON33-C. Avoid race conditions when using library functions
CERT.CONC.UNSAFE_COND_VAR_CCON38-C. Preserve thread safety and liveness when using condition variables
CERT.CONC.WAKE_IN_LOOP_CCON36-C. Wrap functions that can spuriously wake up in a loop
CERT.DCL.SWITCH.VAR_BEFORE_CASEDCL41-C. Do not declare variables inside a switch statement before the first case label
CERT.EMPTY.AGR.INITMSC14-C. Do not introduce unnecessary platform dependencies
CERT.ENUM.LITERAL.TYPE.INTMSC14-C. Do not introduce unnecessary platform dependencies
CERT.ENUM.TYPE.SPECIFIERMSC14-C. Do not introduce unnecessary platform dependencies
CERT.ERR.CONV.STR_TO_NUMERR34-C. Detect errors when converting a string to a number
CERT.EXIT.HANDLER_TERMINATEENV32-C. All exit handlers must return normally
CERT.EXPR.PARENSEXP00-C. Use parentheses for precedence of operation
CERT.EXPR.VOLATILE.ADDREXP32-C. Do not access a volatile object through a nonvolatile reference
CERT.EXPR.VOLATILE.ADDR.PARAMEXP32-C. Do not access a volatile object through a nonvolatile reference
CERT.EXPR.VOLATILE.PTRPTREXP32-C. Do not access a volatile object through a nonvolatile reference
CERT.FIO.NO_FLUSHFIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
CERT.FIXED.MEMORY.ADDRESSMSC14-C. Do not introduce unnecessary platform dependencies
CERT.FSETPOS.VALUEFIO44-C. Only use values for fsetpos() that are returned from fgetpos()
CERT.LITERAL.ARRAYDCL06-C. Use meaningful symbolic constants to represent literal values
CERT.LITERAL.BINARYMSC14-C. Do not introduce unnecessary platform dependencies
CERT.LITERAL.BITFIELDDCL06-C. Use meaningful symbolic constants to represent literal values
CERT.LITERAL.CHAR.CONSTDCL06-C. Use meaningful symbolic constants to represent literal values
CERT.LITERAL.FLT.CONSTDCL06-C. Use meaningful symbolic constants to represent literal values
CERT.LITERAL.INT.CONSTDCL06-C. Use meaningful symbolic constants to represent literal values
CERT.LITERAL.MULTIBYTE.CHARMSC14-C. Do not introduce unnecessary platform dependencies
CERT.LITERAL.OCTALMSC14-C. Do not introduce unnecessary platform dependencies
CERT.LITERAL.STR.CONSTDCL06-C. Use meaningful symbolic constants to represent literal values
CERT.LITERAL.SUFFIX.I64MSC14-C. Do not introduce unnecessary platform dependencies
CERT.MEMCMP.FLOAT_MEMBERFLP37-C. Do not use object representations to compare floating-point values
CERT.MSC.ASCTIMEMSC33-C. Do not pass invalid data to the asctime() function
CERT.MSC.SEED_RANDOMMSC32-C. Properly seed pseudorandom number generators
CERT.MSC.STD_RAND_CALLMSC30-C. Do not use the rand() function for generating pseudorandom numbers
CERT.MULTI.FUNC.ARG.CALLSEXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place
CERT.NAME.DOLLAR.CHARMSC14-C. Do not introduce unnecessary platform dependencies
CERT.POS.THREAD.ASYNC_CANCELPOS47-C. Do not use threads that can be canceled asynchronously
CERT.PUTENV.AUTO_VARIABLEPOS34-C. Do not call putenv() with a pointer to an automatic variable as the argument
CERT.RTN.FLT.CAST.DBLFLP07-C. Cast the return value of a function that returns a floating-point type
CERT.RTN.FLT.IMPLICIT.CAST.DBLFLP07-C. Cast the return value of a function that returns a floating-point type
CERT.SIG.SIG_HANDLER.ASYNC_SAFESIG30-C. Call only asynchronous-safe functions within signal handlers
CERT.STATIC.SINGLE.USEDCL19-C. Minimize the scope of variables and functions
CERT.STDLIB.SIGNALSIG35-C. Do not return from a computational exception signal handler
CERT.STMT.EXPRMSC14-C. Do not introduce unnecessary platform dependencies
CERT.STR.ARG.CONST_TO_NONCONSTSTR30-C. Do not attempt to modify string literals
CERT.STR.ASSIGN.CONST_TO_NONCONSTSTR30-C. Do not attempt to modify string literals
CERT.STR.ASSIGN.CONST_TO_NONCONSTPOS35-C. Avoid race conditions while checking for the existence of a symbolic link
CERT.STR.RANGE.FORMATTERMSC14-C. Do not introduce unnecessary platform dependencies
CERT.STRUCT.FLEXIBLE_ARRAY_MEMBERDCL38-C. Use the correct syntax when declaring a flexible array member
CERT.TU.UNUSED.GLOBAL.DECLDCL19-C. Minimize the scope of variables and functions
CERT.TYPEOFMSC14-C. Do not introduce unnecessary platform dependencies
CERT.UNNAMED.MEMBERMSC14-C. Do not introduce unnecessary platform dependencies
CL.FFM.ASSIGNMEM31-C. Free dynamically allocated memory when no longer needed
CL.FFM.COPYMEM31-C. Free dynamically allocated memory when no longer needed
CL.SHALLOW.ASSIGNMEM31-C. Free dynamically allocated memory when no longer needed
CL.SHALLOW.COPYMEM31-C. Free dynamically allocated memory when no longer needed
CONC.DLCON35-C. Avoid deadlock by locking in a predefined order
CONC.DLPOS51-C. Avoid deadlock with POSIX threads by locking in predefined order
CONC.NO_UNLOCKCON35-C. Avoid deadlock by locking in a predefined order
CONC.NO_UNLOCKPOS51-C. Avoid deadlock with POSIX threads by locking in predefined order
CONC.SLEEPPOS52-C. Do not perform operations that can block while holding a POSIX lock
CONC.SLEEPCON05-C. Do not perform operations that can block while holding a lock
CWARN.CMPCHR.EOFFIO34-C. Distinguish between characters read from a file and EOF or WEOF
CWARN.EMPTY.LABELMSC01-C. Strive for logical completeness
CWARN.FUNCADDREXP16-C. Do not compare function pointers to constant values
CWARN.IMPLICITINTDCL31-C. Declare identifiers before using them
CWARN.MEMSET.SIZEOF.PTRARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
CWARN.NOEFFECT.OUTOFRANGEINT30-C. Ensure that unsigned integer operations do not wrap
CWARN.NOEFFECT.OUTOFRANGEINT32-C. Ensure that operations on signed integers do not result in overflow
CWARN.NOEFFECT.SELF_ASSIGNMSC12-C. Detect and remove code that has no effect or is never executed
CWARN.NOEFFECT.UCMP.GEMSC12-C. Detect and remove code that has no effect or is never executed
CWARN.NOEFFECT.UCMP.GE.MACROMSC12-C. Detect and remove code that has no effect or is never executed
CWARN.NOEFFECT.UCMP.LTMSC12-C. Detect and remove code that has no effect or is never executed
CWARN.NOEFFECT.UCMP.LT.MACROMSC12-C. Detect and remove code that has no effect or is never executed
CWARN.NULLCHECK.FUNCNAMEEXP16-C. Do not compare function pointers to constant values
CWARN.NULLCHECK.FUNCNAMEMSC12-C. Detect and remove code that has no effect or is never executed
CXX.CAST.SIGNED_CHAR_TO_INTEGERSTR34-C. Cast characters to unsigned char before converting to larger integer sizes
CXX.DIFF.WIDTH.STR_AND_FUNCSTR38-C. Do not confuse narrow and wide character strings and functions
CXX.ERRNO.INCORRECTLY_CHECKEDERR30-C. Take care when reading errno
CXX.ERRNO.NOT_CHECKEDERR30-C. Take care when reading errno
CXX.ERRNO.NOT_SETERR30-C. Take care when reading errno
CXX.ID_VIS.GLOBAL_VARIABLE.EXTERNDCL19-C. Minimize the scope of variables and functions
CXX.ID_VIS.GLOBAL_VARIABLE.STATICDCL19-C. Minimize the scope of variables and functions
CXX.SV.PWD.PLAINMSC41-C. Never hard code sensitive information
CXX.SV.PWD.PLAIN.LENGTHMSC41-C. Never hard code sensitive information
CXX.SV.PWD.PLAIN.ZEROMSC41-C. Never hard code sensitive information
DBZ.CONSTINT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
DBZ.CONST.CALLINT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
DBZ.GENERALINT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
DBZ.ITERATORINT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
DBZ.ITERATOR.CALLINT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
EFFECTMSC12-C. Detect and remove code that has no effect or is never executed
FMM.MIGHTMEM31-C. Free dynamically allocated memory when no longer needed
FMM.MIGHTWIN30-C. Properly pair allocation and deallocation functions
FMM.MUSTMEM31-C. Free dynamically allocated memory when no longer needed
FMM.MUSTWIN30-C. Properly pair allocation and deallocation functions
FNH.MIGHTMEM34-C. Only free memory allocated dynamically
FNH.MIGHTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
FNH.MUSTMEM34-C. Only free memory allocated dynamically
FNH.MUSTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
FUM.GEN.MIGHTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
FUM.GEN.MUSTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
FUNCRET.GENMSC37-C. Ensure that control never reaches the end of a non-void function
FUNCRET.IMPLICITMSC37-C. Ensure that control never reaches the end of a non-void function
HCCMSC41-C. Never hard code sensitive information
HCC.PWDMSC41-C. Never hard code sensitive information
HCC.USERMSC41-C. Never hard code sensitive information
INCORRECT.ALLOC_SIZEMEM35-C. Allocate sufficient memory for an object
INFINITE_LOOP.GLOBALMSC01-C. Strive for logical completeness
INFINITE_LOOP.LOCALMSC01-C. Strive for logical completeness
INFINITE_LOOP.MACROMSC01-C. Strive for logical completeness
INVARIANT_CONDITION.UNREACHMSC07-C. Detect and remove dead code
INVARIANT_CONDITION.UNREACHMSC12-C. Detect and remove code that has no effect or is never executed
LA_UNUSEDMSC01-C. Strive for logical completeness
LA_UNUSEDMSC07-C. Detect and remove dead code
LA_UNUSEDMSC12-C. Detect and remove code that has no effect or is never executed
LOCRET.ARGDCL30-C. Declare objects with appropriate storage durations
LOCRET.GLOBDCL30-C. Declare objects with appropriate storage durations
LOCRET.RETDCL30-C. Declare objects with appropriate storage durations
LV_UNUSED.GENMSC13-C. Detect and remove unused values
MISRA.ARRAY.VAR_LENGTH.2012ARR32-C. Ensure size arguments for variable length arrays are in a valid range
MISRA.ASSIGN.CONDEXP45-C. Do not perform assignments in selection statements
MISRA.BITFIELD.TYPEINT12-C. Do not make assumptions about the type of a plain int bit-field when used in an expression
MISRA.BITS.NOT_UNSIGNEDINT13-C. Use bitwise operators only on unsigned operands
MISRA.BITS.NOT_UNSIGNED.PREPINT13-C. Use bitwise operators only on unsigned operands
MISRA.CAST.FLOAT.INTFLP34-C. Ensure that floating-point conversions are within range of the new type
MISRA.CAST.FLOAT.WIDERFLP34-C. Ensure that floating-point conversions are within range of the new type
MISRA.CAST.FUNC_PTR.2012EXP39-C. Do not access a variable through a pointer of an incompatible type
MISRA.CAST.FUNC_PTR.2012DCL07-C. Include the appropriate type information in function declarators
MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012EXP39-C. Do not access a variable through a pointer of an incompatible type
MISRA.CAST.INTINT02-C. Understand integer conversion rules
MISRA.CAST.INT_FLOATFLP34-C. Ensure that floating-point conversions are within range of the new type
MISRA.CAST.OBJ_PTR_TO_INT.2012INT36-C. Converting a pointer to integer or integer to pointer
MISRA.CAST.OBJ_PTR_TO_NON_INT.2012EXP39-C. Do not access a variable through a pointer of an incompatible type
MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012EXP36-C. Do not cast pointers into more strictly aligned pointer types
MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012EXP39-C. Do not access a variable through a pointer of an incompatible type
MISRA.CAST.UNSIGNED_BITSINT02-C. Understand integer conversion rules
MISRA.CONV.FLOATFLP34-C. Ensure that floating-point conversions are within range of the new type
MISRA.CONV.INT.SIGNINT02-C. Understand integer conversion rules
MISRA.CVALUE.IMPL.CASTINT02-C. Understand integer conversion rules
MISRA.DECL.NO_TYPEDCL31-C. Declare identifiers before using them
MISRA.DEFINE.BADEXPPRE02-C. Macro replacement lists should be parenthesized
MISRA.DEFINE.BADEXPPRE10-C. Wrap multistatement macros in a do-while loop
MISRA.DEFINE.FUNCPRE00-C. Prefer inline or static functions to function-like macros
MISRA.DEFINE.NOPARSPRE01-C. Use parentheses within macros around parameter names
MISRA.DEFINE.SHARPPRE30-C. Do not create a universal character name through concatenation
MISRA.DEFINE.SHARP.ORDER.2012PRE05-C. Understand macro replacement when concatenating tokens or performing stringification
MISRA.DEFINE.WRONGNAME.UNDERSCOREDCL37-C. Do not declare or define a reserved identifier
MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012INT09-C. Ensure enumeration constants map to unique values
MISRA.ETYPE.ASSIGN.2012STR37-C. Arguments to character-handling functions must be representable as an unsigned char
MISRA.EXPANSION.DIRECTIVEPRE32-C. Do not use preprocessor directives in invocations of function-like macros
MISRA.FILE_PTR.DEREF.2012FIO38-C. Do not copy a FILE object
MISRA.FILE_PTR.DEREF.CAST.2012FIO38-C. Do not copy a FILE object
MISRA.FILE_PTR.DEREF.INDIRECT.2012FIO38-C. Do not copy a FILE object
MISRA.FILE_PTR.DEREF.RETURN.2012FIO38-C. Do not copy a FILE object
MISRA.FOR.COUNTER.FLTFLP30-C. Do not use floating-point variables as loop counters
MISRA.FUNC.NO_PARAMSDCL20-C. Explicitly specify void when a function accepts no arguments
MISRA.FUNC.NOPROT.CALLDCL31-C. Declare identifiers before using them
MISRA.FUNC.NOPROT.DEFDCL07-C. Include the appropriate type information in function declarators
MISRA.FUNC.NOPROT.DEF.2012DCL40-C. Do not create incompatible declarations of the same function or object
MISRA.FUNC.PARAMS.IDENTDCL40-C. Do not create incompatible declarations of the same function or object
MISRA.FUNC.PROT_FORM.KR.2012DCL07-C. Include the appropriate type information in function declarators
MISRA.FUNC.RECURMEM05-C. Avoid large stack allocations
MISRA.FUNC.STATIC.REDECLDCL36-C. Do not declare an identifier with conflicting linkage classifications
MISRA.FUNC.STATIC.REDECLMSC40-C. Do not violate constraints
MISRA.FUNC.UNMATCHED.PARAMSEXP37-C. Call functions with the correct number and type of arguments
MISRA.FUNC.UNUSEDRET.2012EXP12-C. Do not ignore values returned by functions
MISRA.FUNC.VARARGDCL11-C. Understand the type issues associated with variadic functions
MISRA.IDENT.DISTINCT.C99.2012DCL23-C. Guarantee that mutually visible identifiers are unique
MISRA.IF.NO_COMPOUNDEXP19-C. Use braces for the body of an if, for, or while statement
MISRA.IF.NO_ELSEMSC01-C. Strive for logical completeness
MISRA.INCGUARDPRE06-C. Enclose header files in an include guard
MISRA.INCL.SIGNAL.2012ERR32-C. Do not rely on indeterminate values of errno
MISRA.INCL.SIGNAL.2012POS44-C. Do not use signals to terminate threads
MISRA.INCOMPLETE.STRUCTMEM33-C. Allocate and copy structures containing a flexible array member dynamically
MISRA.INCR_DECR.OTHEREXP30-C. Do not depend on the order of evaluation for side effects
MISRA.LOGIC.OPERATOR.NOT_BOOLEXP46-C. Do not use a bitwise operator with a Boolean-like operand
MISRA.LOGIC.SIDEEFFEXP02-C. Be aware of the short-circuit behavior of the logical AND and OR operators
MISRA.MEMB.FLEX_ARRAY.2012MEM33-C. Allocate and copy structures containing a flexible array member dynamically
MISRA.PPARAM.NEEDS.CONSTDCL13-C. Declare function parameters that are pointers to values not changed by the function as const
MISRA.PTR.ARITHARR36-C. Do not subtract or compare two pointers that do not refer to the same array
MISRA.SHIFT.RANGE.2012INT34-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
MISRA.SIZEOF.SIDE_EFFECTEXP44-C. Do not rely on side effects in operands to sizeof, _Alignof, or _Generic
MISRA.STDLIB.ATOIERR34-C. Detect errors when converting a string to a number
MISRA.STDLIB.CTYPE.RANGE.2012_AMD1ENV30-C. Do not modify the object referenced by the return value of certain functions
MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1ENV30-C. Do not modify the object referenced by the return value of certain functions
MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1ENV34-C. Do not store pointers returned by certain functions
MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1ENV30-C. Do not modify the object referenced by the return value of certain functions
MISRA.STDLIB.MEMCMP.PTR_ARG_TYPESEXP42-C. Do not compare padding data
MISRA.STDLIB.MEMCMP.PTR_ARG_TYPESFLP37-C. Do not use object representations to compare floating-point values
MISRA.STDLIB.SIGNALSIG34-C. Do not call signal() from within interruptible signal handlers
MISRA.STDLIB.SIGNALERR32-C. Do not rely on indeterminate values of errno
MISRA.STDLIB.SIGNALCON37-C. Do not call signal() in a multithreaded program
MISRA.STDLIB.WRONGNAMEDCL37-C. Do not declare or define a reserved identifier
MISRA.STDLIB.WRONGNAME.UNDERSCOREDCL37-C. Do not declare or define a reserved identifier
MISRA.STMT.NO_COMPOUNDEXP19-C. Use braces for the body of an if, for, or while statement
MISRA.STMT.NO_EFFECTMSC12-C. Detect and remove code that has no effect or is never executed
MISRA.STRING_LITERAL.NON_CONST.2012STR05-C. Use pointers to const when referring to string literals
MISRA.SWITCH.WELL_FORMED.BREAK.2012MSC17-C. Finish every set of statements associated with a case label with a break statement
MISRA.SWITCH.WELL_FORMED.DEFAULT.2012MSC01-C. Strive for logical completeness
MISRA.TOKEN.OCTAL.ESCAPEDCL18-C. Do not begin integer constants with 0 when specifying a decimal value
MISRA.TOKEN.OCTAL.INTDCL18-C. Do not begin integer constants with 0 when specifying a decimal value
MISRA.TYPE.RESTRICT.QUAL.2012EXP43-C. Avoid undefined behavior when using restrict-qualified pointers
MISRA.UMINUS.UNSIGNEDINT02-C. Understand integer conversion rules
MISRA.VAR.HIDDENDCL01-C. Do not reuse variable names in subscopes
MISRA.VAR.MIN.VISDCL19-C. Minimize the scope of variables and functions
MLK.MIGHTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
MLK.MIGHTMEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resources
MLK.MUSTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
MLK.MUSTMEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resources
MLK.RET.MIGHTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
MLK.RET.MIGHTMEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resources
MLK.RET.MUSTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
MLK.RET.MUSTMEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resources
NNTS.MIGHTARR30-C. Do not form or use out-of-bounds pointers or array subscripts
NNTS.MIGHTSTR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string
NNTS.MIGHTARR00-C. Understand how arrays work
NNTS.MIGHTSTR03-C. Do not inadvertently truncate a string
NNTS.MUSTARR30-C. Do not form or use out-of-bounds pointers or array subscripts
NNTS.MUSTSTR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string
NNTS.MUSTARR00-C. Understand how arrays work
NNTS.MUSTSTR03-C. Do not inadvertently truncate a string
NNTS.TAINTEDARR30-C. Do not form or use out-of-bounds pointers or array subscripts
NNTS.TAINTEDARR00-C. Understand how arrays work
NNTS.TAINTEDSTR02-C. Sanitize data passed to complex subsystems
NPD.CHECK.CALL.MIGHTEXP34-C. Do not dereference null pointers
NPD.CHECK.CALL.MUSTEXP34-C. Do not dereference null pointers
NPD.CHECK.MIGHTEXP34-C. Do not dereference null pointers
NPD.CHECK.MUSTEXP34-C. Do not dereference null pointers
NPD.CHECK.MUSTERR33-C. Detect and handle standard library errors
NPD.CONST.CALLEXP34-C. Do not dereference null pointers
NPD.CONST.DEREFEXP34-C. Do not dereference null pointers
NPD.FUNC.CALL.MIGHTEXP34-C. Do not dereference null pointers
NPD.FUNC.CALL.MIGHTARR30-C. Do not form or use out-of-bounds pointers or array subscripts
NPD.FUNC.CALL.MUSTEXP34-C. Do not dereference null pointers
NPD.FUNC.MIGHTEXP34-C. Do not dereference null pointers
NPD.FUNC.MUSTEXP34-C. Do not dereference null pointers
NPD.FUNC.MUSTERR33-C. Detect and handle standard library errors
NPD.GEN.CALL.MIGHTEXP34-C. Do not dereference null pointers
NPD.GEN.CALL.MUSTEXP34-C. Do not dereference null pointers
NPD.GEN.MIGHTEXP34-C. Do not dereference null pointers
NPD.GEN.MUSTEXP34-C. Do not dereference null pointers
NUM.OVERFLOWINT30-C. Ensure that unsigned integer operations do not wrap
NUM.OVERFLOWINT32-C. Ensure that operations on signed integers do not result in overflow
NUM.OVERFLOW.DFINT30-C. Ensure that unsigned integer operations do not wrap
NUM.OVERFLOW.DFINT32-C. Ensure that operations on signed integers do not result in overflow
PORTING.CAST.FLTPNTFLP36-C. Preserve precision when converting integral values to floating-point type
PORTING.CAST.SIZEINT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
PORTING.CAST.SIZEINT18-C. Evaluate integer expressions in a larger size before comparing or assigning to that size
PORTING.SIGNED.CHARINT07-C. Use only explicitly signed or unsigned char type for numeric values
PORTING.STORAGE.STRUCTDCL39-C. Avoid information leakage when passing a structure across a trust boundary
PORTING.VAR.EFFECTSPRE31-C. Avoid side effects in arguments to unsafe macros
PORTING.VAR.EFFECTSEXP30-C. Do not depend on the order of evaluation for side effects
PRECISION.LOSSINT02-C. Understand integer conversion rules
RETVOID.IMPLICITDCL31-C. Declare identifiers before using them
RH.LEAKFIO42-C. Close files when they are no longer needed
RH.LEAKFIO22-C. Close files before spawning processes
RH.LEAKMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
RH.LEAKMEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resources
RNPD.CALLEXP34-C. Do not dereference null pointers
RNPD.DEREFEXP34-C. Do not dereference null pointers
SEMICOLEXP15-C. Do not place a semicolon on the same line as an if, for, or while statement
SV.BANNED.RECOMMENDED.SCANFERR34-C. Detect errors when converting a string to a number
SV.CODE_INJECTION.SHELL_EXECENV33-C. Do not call system()
SV.DLLPRELOAD.NONABSOLUTE.DLLFIO02-C. Canonicalize path names originating from tainted sources
SV.DLLPRELOAD.NONABSOLUTE.DLLWIN00-C. Be specific when dynamically loading libraries
SV.DLLPRELOAD.NONABSOLUTE.EXEWIN00-C. Be specific when dynamically loading libraries
SV.DLLPRELOAD.SEARCHPATHWIN00-C. Be specific when dynamically loading libraries
SV.FMT_STR.BAD_SCAN_FORMATSTR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
SV.FMT_STR.PRINT_FORMAT_MISMATCH.BADFIO47-C. Use valid format strings
SV.FMT_STR.PRINT_FORMAT_MISMATCH.BADDCL11-C. Understand the type issues associated with variadic functions
SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIREDFIO47-C. Use valid format strings
SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIREDDCL11-C. Understand the type issues associated with variadic functions
SV.FMT_STR.PRINT_IMPROP_LENGTHFIO47-C. Use valid format strings
SV.FMT_STR.PRINT_IMPROP_LENGTHDCL11-C. Understand the type issues associated with variadic functions
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEWFIO47-C. Use valid format strings
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEWDCL10-C. Maintain the contract between the writer and caller of variadic functions
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEWDCL11-C. Understand the type issues associated with variadic functions
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANYFIO47-C. Use valid format strings
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANYDCL10-C. Maintain the contract between the writer and caller of variadic functions
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANYDCL11-C. Understand the type issues associated with variadic functions
SV.FMT_STR.SCAN_FORMAT_MISMATCH.BADFIO47-C. Use valid format strings
SV.FMT_STR.SCAN_FORMAT_MISMATCH.BADDCL11-C. Understand the type issues associated with variadic functions
SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIREDFIO47-C. Use valid format strings
SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIREDDCL11-C. Understand the type issues associated with variadic functions
SV.FMT_STR.SCAN_IMPROP_LENGTHFIO47-C. Use valid format strings
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEWFIO47-C. Use valid format strings
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEWDCL10-C. Maintain the contract between the writer and caller of variadic functions
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANYFIO47-C. Use valid format strings
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANYDCL10-C. Maintain the contract between the writer and caller of variadic functions
SV.FMT_STR.UNKWN_FORMATFIO47-C. Use valid format strings
SV.FMT_STR.UNKWN_FORMAT.SCANDCL11-C. Understand the type issues associated with variadic functions
SV.FMTSTR.GENERICFIO30-C. Exclude user input from format strings
SV.INCORRECT_RESOURCE_HANDLING.URHFIO46-C. Do not access a closed file
SV.RVT.RETVAL_NOTTESTEDERR33-C. Detect and handle standard library errors
SV.RVT.RETVAL_NOTTESTEDPOS54-C. Detect and handle POSIX library errors
SV.RVT.RETVAL_NOTTESTEDEXP12-C. Do not ignore values returned by functions
SV.STRBO.BOUND_COPY.OVERFLOWARR00-C. Understand how arrays work
SV.STRBO.BOUND_COPY.UNTERMSTR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string
SV.STRBO.BOUND_COPY.UNTERMARR00-C. Understand how arrays work
SV.STRBO.BOUND_SPRINTFARR00-C. Understand how arrays work
SV.STRBO.UNBOUND_COPYARR00-C. Understand how arrays work
SV.STRBO.UNBOUND_SPRINTFARR00-C. Understand how arrays work
SV.TAINTED.ALLOC_SIZEMEM35-C. Allocate sufficient memory for an object
SV.TAINTED.ALLOC_SIZEARR00-C. Understand how arrays work
SV.TAINTED.ALLOC_SIZEINT04-C. Enforce limits on integer values originating from tainted sources
SV.TAINTED.BINOPINT04-C. Enforce limits on integer values originating from tainted sources
SV.TAINTED.CALL.BINOPINT04-C. Enforce limits on integer values originating from tainted sources
SV.TAINTED.CALL.INDEX_ACCESSARR00-C. Understand how arrays work
SV.TAINTED.CALL.INDEX_ACCESSINT04-C. Enforce limits on integer values originating from tainted sources
SV.TAINTED.CALL.LOOP_BOUNDARR00-C. Understand how arrays work
SV.TAINTED.CALL.LOOP_BOUNDINT04-C. Enforce limits on integer values originating from tainted sources
SV.TAINTED.FMTSTRFIO30-C. Exclude user input from format strings
SV.TAINTED.INDEX_ACCESSARR30-C. Do not form or use out-of-bounds pointers or array subscripts
SV.TAINTED.INDEX_ACCESSARR00-C. Understand how arrays work
SV.TAINTED.INDEX_ACCESSINT04-C. Enforce limits on integer values originating from tainted sources
SV.TAINTED.INJECTIONSTR02-C. Sanitize data passed to complex subsystems
SV.TAINTED.LOOP_BOUNDARR30-C. Do not form or use out-of-bounds pointers or array subscripts
SV.TAINTED.LOOP_BOUNDARR00-C. Understand how arrays work
SV.TAINTED.LOOP_BOUNDINT04-C. Enforce limits on integer values originating from tainted sources
SV.TOCTOU.FILE_ACCESSFIO45-C. Avoid TOCTOU race conditions while accessing files
SV.TOCTOU.FILE_ACCESSPOS35-C. Avoid race conditions while checking for the existence of a symbolic link
SV.TOCTOU.FILE_ACCESSFIO01-C. Be careful using functions that use file names for identification
SV.TOCTOU.FILE_ACCESSFIO02-C. Canonicalize path names originating from tainted sources
SV.UNBOUND_STRING_INPUT.CINARR00-C. Understand how arrays work
SV.UNBOUND_STRING_INPUT.FUNCSTR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
SV.UNBOUND_STRING_INPUT.FUNCARR00-C. Understand how arrays work
SV.USAGERULES.PERMISSIONSPOS36-C. Observe correct revocation order while relinquishing privileges
SV.USAGERULES.PERMISSIONSPOS37-C. Ensure that privilege relinquishment is successful
SV.USAGERULES.PERMISSIONSPOS02-C. Follow the principle of least privilege
UFM.DEREF.MIGHTMEM30-C. Do not access freed memory
UFM.DEREF.MIGHTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
UFM.DEREF.MUSTMEM30-C. Do not access freed memory
UFM.DEREF.MUSTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
UFM.FFM.MIGHTMEM30-C. Do not access freed memory
UFM.FFM.MIGHTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
UFM.FFM.MUSTMEM30-C. Do not access freed memory
UFM.FFM.MUSTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
UFM.RETURN.MIGHTMEM30-C. Do not access freed memory
UFM.RETURN.MIGHTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
UFM.RETURN.MUSTMEM30-C. Do not access freed memory
UFM.RETURN.MUSTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
UFM.USE.MIGHTMEM30-C. Do not access freed memory
UFM.USE.MIGHTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
UFM.USE.MUSTMEM30-C. Do not access freed memory
UFM.USE.MUSTMEM00-C. Allocate and free memory in the same module, at the same level of abstraction
UNINIT.HEAP.MIGHTEXP33-C. Do not read uninitialized memory
UNINIT.HEAP.MUSTEXP33-C. Do not read uninitialized memory
UNINIT.STACK.ARRAY.MIGHTEXP33-C. Do not read uninitialized memory
UNINIT.STACK.ARRAY.MUSTEXP33-C. Do not read uninitialized memory
UNINIT.STACK.ARRAY.PARTIAL.MUSTEXP33-C. Do not read uninitialized memory
UNINIT.STACK.MIGHTEXP33-C. Do not read uninitialized memory
UNINIT.STACK.MUSTEXP33-C. Do not read uninitialized memory
UNREACH.ENUMMSC07-C. Detect and remove dead code
UNREACH.ENUMMSC12-C. Detect and remove code that has no effect or is never executed
UNREACH.GENMSC07-C. Detect and remove dead code
UNREACH.GENMSC12-C. Detect and remove code that has no effect or is never executed
UNREACH.RETURNMSC07-C. Detect and remove dead code
UNREACH.RETURNMSC12-C. Detect and remove code that has no effect or is never executed
UNREACH.SIZEOFMSC07-C. Detect and remove dead code
UNREACH.SIZEOFMSC12-C. Detect and remove code that has no effect or is never executed
VA.LIST.INDETERMINATEMSC39-C. Do not call va_arg() on a va_list that has an indeterminate value
VA_UNUSED.GENMSC12-C. Detect and remove code that has no effect or is never executed
VA_UNUSED.GENMSC13-C. Detect and remove unused values
VA_UNUSED.INITMSC12-C. Detect and remove code that has no effect or is never executed
VA_UNUSED.INITMSC13-C. Detect and remove unused values