GitHub
CERT Secure Coding

PVS-Studio

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

CheckerGuideline
V502EXP00-C. Use parentheses for precedence of operation
V503EXP08-C. Ensure pointer arithmetic is used correctly
V505MEM05-C. Avoid large stack allocations
V506DCL30-C. Declare objects with appropriate storage durations
V507DCL30-C. Declare objects with appropriate storage durations
V510FIO47-C. Use valid format strings
V511ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V512ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V512ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V513MSC24-C. Do not use deprecated or obsolescent functions
V514ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V516EXP16-C. Do not compare function pointers to constant values
V517MSC01-C. Strive for logical completeness
V518STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
V519MSC13-C. Detect and remove unused values
V520EXP08-C. Ensure pointer arithmetic is used correctly
V521EXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place
V522EXP34-C. Do not dereference null pointers
V527INT36-C. Converting a pointer to integer or integer to pointer
V528INT36-C. Converting a pointer to integer or integer to pointer
V529EXP15-C. Do not place a semicolon on the same line as an if, for, or while statement
V530EXP12-C. Do not ignore values returned by functions
V531MEM35-C. Allocate sufficient memory for an object
V532EXP30-C. Do not depend on the order of evaluation for side effects
V533MSC01-C. Strive for logical completeness
V534MSC01-C. Strive for logical completeness
V535MSC01-C. Strive for logical completeness
V536DCL18-C. Do not begin integer constants with 0 when specifying a decimal value
V540EXP37-C. Call functions with the correct number and type of arguments
V541EXP37-C. Call functions with the correct number and type of arguments
V542INT36-C. Converting a pointer to integer or integer to pointer
V548EXP36-C. Do not cast pointers into more strictly aligned pointer types
V549EXP37-C. Call functions with the correct number and type of arguments
V550FLP02-C. Avoid using floating-point numbers when precise computation is needed
V551MSC12-C. Detect and remove code that has no effect or is never executed
V555INT02-C. Understand integer conversion rules
V556MSC01-C. Strive for logical completeness
V557ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V558DCL30-C. Declare objects with appropriate storage durations
V559EXP45-C. Do not perform assignments in selection statements
V561DCL01-C. Do not reuse variable names in subscopes
V562INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V563EXP19-C. Use braces for the body of an if, for, or while statement
V564EXP46-C. Do not use a bitwise operator with a Boolean-like operand
V566INT36-C. Converting a pointer to integer or integer to pointer
V567EXP30-C. Do not depend on the order of evaluation for side effects
V568EXP44-C. Do not rely on side effects in operands to sizeof, _Alignof, or _Generic
V568ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V569INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V573EXP33-C. Do not read uninitialized memory
V574EXP08-C. Ensure pointer arithmetic is used correctly
V575EXP37-C. Call functions with the correct number and type of arguments
V576FIO47-C. Use valid format strings
V576DCL11-C. Understand the type issues associated with variadic functions
V577MSC01-C. Strive for logical completeness
V579ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V580EXP39-C. Do not access a variable through a pointer of an incompatible type
V582ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V585MEM34-C. Only free memory allocated dynamically
V586MEM30-C. Do not access freed memory
V590MSC01-C. Strive for logical completeness
V593EXP00-C. Use parentheses for precedence of operation
V594ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V595EXP34-C. Do not dereference null pointers
V596MSC13-C. Detect and remove unused values
V597MSC06-C. Beware of compiler optimizations
V600EXP08-C. Ensure pointer arithmetic is used correctly
V601INT36-C. Converting a pointer to integer or integer to pointer
V603MSC13-C. Detect and remove unused values
V604ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V605INT02-C. Understand integer conversion rules
V606MSC12-C. Detect and remove code that has no effect or is never executed
V609INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
V610INT34-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
V612MSC01-C. Strive for logical completeness
V613EXP08-C. Ensure pointer arithmetic is used correctly
V614EXP33-C. Do not read uninitialized memory
V615FLP34-C. Ensure that floating-point conversions are within range of the new type
V618FIO30-C. Exclude user input from format strings
V619EXP08-C. Ensure pointer arithmetic is used correctly
V620EXP08-C. Ensure pointer arithmetic is used correctly
V621MSC21-C. Use robust loop termination conditions
V622DCL41-C. Do not declare variables inside a switch statement before the first case label
V623DCL30-C. Declare objects with appropriate storage durations
V628EXP19-C. Use braces for the body of an if, for, or while statement
V629INT00-C. Understand the data model used by your implementation(s)
V632EXP37-C. Call functions with the correct number and type of arguments
V633EXP45-C. Do not perform assignments in selection statements
V634EXP00-C. Use parentheses for precedence of operation
V635MEM35-C. Allocate sufficient memory for an object
V636FLP06-C. Convert integers to floating point for floating-point operations
V639EXP37-C. Call functions with the correct number and type of arguments
V640EXP19-C. Use braces for the body of an if, for, or while statement
V641EXP36-C. Do not cast pointers into more strictly aligned pointer types
V642INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V643ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V643EXP08-C. Ensure pointer arithmetic is used correctly
V645ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V645STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
V647INT36-C. Converting a pointer to integer or integer to pointer
V648EXP00-C. Use parentheses for precedence of operation
V649MSC12-C. Detect and remove code that has no effect or is never executed
V650EXP08-C. Ensure pointer arithmetic is used correctly
V658INT30-C. Ensure that unsigned integer operations do not wrap
V664EXP34-C. Do not dereference null pointers
V665MSC00-C. Compile cleanly at high warning levels
V666EXP37-C. Call functions with the correct number and type of arguments
V670EXP33-C. Do not read uninitialized memory
V671EXP37-C. Call functions with the correct number and type of arguments
V673INT02-C. Understand integer conversion rules
V674FLP36-C. Preserve precision when converting integral values to floating-point type
V675STR30-C. Do not attempt to modify string literals
V675ENV30-C. Do not modify the object referenced by the return value of certain functions
V676INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V677DCL37-C. Do not declare or define a reserved identifier
V679EXP33-C. Do not read uninitialized memory
V681EXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place
V687EXP08-C. Ensure pointer arithmetic is used correctly
V688DCL01-C. Do not reuse variable names in subscopes
V692STR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string
V694ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
V695MSC01-C. Strive for logical completeness
V696MSC01-C. Strive for logical completeness
V697ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V698EXP12-C. Do not ignore values returned by functions
V699EXP45-C. Do not perform assignments in selection statements
V701WIN30-C. Properly pair allocation and deallocation functions
V703DCL01-C. Do not reuse variable names in subscopes
V705EXP19-C. Use braces for the body of an if, for, or while statement
V709EXP13-C. Treat relational and equality operators as if they were nonassociative
V711DCL01-C. Do not reuse variable names in subscopes
V712MSC06-C. Beware of compiler optimizations
V713EXP34-C. Do not dereference null pointers
V714MSC13-C. Detect and remove unused values
V715EXP15-C. Do not place a semicolon on the same line as an if, for, or while statement
V716INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V719MSC01-C. Strive for logical completeness
V721INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V722MSC01-C. Strive for logical completeness
V723DCL30-C. Declare objects with appropriate storage durations
V724INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V726MEM34-C. Only free memory allocated dynamically
V727STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
V732INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V733PRE01-C. Use parentheses within macros around parameter names
V736ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
V738DCL30-C. Declare objects with appropriate storage durations
V739INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V742EXP37-C. Call functions with the correct number and type of arguments
V743EXP37-C. Call functions with the correct number and type of arguments
V744MSC13-C. Detect and remove unused values
V747MSC01-C. Strive for logical completeness
V751MSC13-C. Detect and remove unused values
V755STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
V757EXP12-C. Do not ignore values returned by functions
V763MSC13-C. Detect and remove unused values
V764EXP37-C. Call functions with the correct number and type of arguments
V769EXP08-C. Ensure pointer arithmetic is used correctly
V772MSC15-C. Do not depend on undefined behavior
V773MEM31-C. Free dynamically allocated memory when no longer needed
V774MEM30-C. Do not access freed memory
V779MSC12-C. Detect and remove code that has no effect or is never executed
V781MEM35-C. Allocate sufficient memory for an object
V781API00-C. Functions should validate their parameters
V782ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
V784INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V785MSC01-C. Strive for logical completeness
V786MSC01-C. Strive for logical completeness
V793INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V796MSC17-C. Finish every set of statements associated with a case label with a break statement
V797EXP12-C. Do not ignore values returned by functions
V798ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer
V821DCL19-C. Minimize the scope of variables and functions
V1001MSC06-C. Beware of compiler optimizations
V1001MSC13-C. Detect and remove unused values
V1004EXP34-C. Do not dereference null pointers
V1004EXP37-C. Call functions with the correct number and type of arguments
V1004EXP08-C. Ensure pointer arithmetic is used correctly
V1012INT30-C. Ensure that unsigned integer operations do not wrap
V1014FLP37-C. Do not use object representations to compare floating-point values
V1015EXP46-C. Do not use a bitwise operator with a Boolean-like operand
V1019INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V1024FIO40-C. Reset strings on fgets() or fgetws() failure
V1026INT32-C. Ensure that operations on signed integers do not result in overflow
V1028INT30-C. Ensure that unsigned integer operations do not wrap
V1029INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V1031DCL31-C. Declare identifiers before using them
V1032EXP36-C. Do not cast pointers into more strictly aligned pointer types
V1034FLP30-C. Do not use floating-point variables as loop counters
V1035FIO44-C. Only use values for fsetpos() that are returned from fgetpos()
V1046INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
V1050EXP33-C. Do not read uninitialized memory
V1058EXP16-C. Do not compare function pointers to constant values
V1070INT32-C. Ensure that operations on signed integers do not result in overflow
V1072MEM03-C. Clear sensitive information stored in reusable resources
V1081INT32-C. Ensure that operations on signed integers do not result in overflow
V1083INT32-C. Ensure that operations on signed integers do not result in overflow
V1085INT32-C. Ensure that operations on signed integers do not result in overflow
V1086ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
V1088CON43-C. Do not allow data races in multithreaded code
V1091INT36-C. Converting a pointer to integer or integer to pointer
V1103EXP42-C. Do not compare padding data
V1104EXP00-C. Use parentheses for precedence of operation
V1111API00-C. Functions should validate their parameters
V2001MSC24-C. Do not use deprecated or obsolescent functions
V2002MSC24-C. Do not use deprecated or obsolescent functions
V2003FLP34-C. Ensure that floating-point conversions are within range of the new type
V2004FLP34-C. Ensure that floating-point conversions are within range of the new type
V2015DCL01-C. Do not reuse variable names in subscopes
V2021ERR06-C. Understand the termination behavior of assert() and abort()
V5003MSC13-C. Detect and remove unused values
V5004INT00-C. Understand the data model used by your implementation(s)
V5005INT30-C. Ensure that unsigned integer operations do not wrap
V5006INT02-C. Understand integer conversion rules
V5010INT32-C. Ensure that operations on signed integers do not result in overflow
V5011INT30-C. Ensure that unsigned integer operations do not wrap