C checkers |
CERT C Secure Coding Standard |
ARRAY_VS_SINGLETON |
ARR35-C. Do not allow loops to iterate beyond the end of an array |
ASSERT_SIDE_EFFECT |
EXP31-C. Avoid side effects in assertions |
ASSERT_SIDE_EFFECT |
EXP31-C. Incorporate diagnostic tests using assertions |
BAD_COMPARE |
MSC02-C. Avoid errors of omission |
BAD_ALLOC_STRLEN |
MEM35-C. Allocate sufficient memory for an object |
BAD_COMPARE |
MSC02-C. Avoid errors of omission |
BAD_FREE |
MEM34-C. Only free memory allocated dynamically |
CHAR_IO |
FIO34-C. Use int to capture the return value of character IO functions |
CHECKED_RETURN |
FIO33-C. Detect and handle input output errors resulting in undefined behavior |
CHECKED_RETURN |
FIO04-C. Detect and handle input and output errors |
CHECKED_RETURN |
EXP12-C. Do not ignore values returned by functions |
CHECKED_RETURN |
MEM32-C. Detect and handle memory allocation errors |
CONSTANT_EXPRESSION_RESULT |
EXP17-C. Do not perform bitwise operations in conditional expressions |
DEADCODE |
MSC07-C. Detect and remove dead code |
EVALUATION_ORDER |
EXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place |
EVALUATION_ORDER |
EXP34-C. Do not depend on order of evaluation between sequence points |
FORWARD_NULL |
EXP34-C. Do not dereference null pointers |
INFINITE_LOOP |
INT17-C. Beware of infinite loops |
MISRA_CAST |
INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
MISRA_CAST |
FLP34-C. Ensure that floating point conversions are within range of the new type |
MISSING_BREAK |
MSC17-C. Finish every set of statements associated with a case label with a break statement |
MISSING_RETURN |
MSC02-C. Avoid errors of omission |
NEGATIVE_RETURNS |
INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
NEGATIVE_RETURNS |
ARR30-C. Guarantee that array indices are within the valid range |
NEGATIVE_RETURNS |
ARR32-C. Ensure size arguments for variable length arrays are in a valid range |
NEGATIVE_RETURNS |
ARR35-C. Do not allow loops to iterate beyond the end of an array |
NO_EFFECT |
MSC12-C. Detect and remove code that has no effect |
NULL_RETURNS |
EXP34-C. Do not dereference null pointers |
OVERRUN_DYNAMIC |
ARR35-C. Do not allow loops to iterate beyond the end of an array |
OVERRUN_DYNAMIC |
STR35-C. Do not copy data from an unbounded source to a fixed-length array |
OVERRUN_STATIC |
ARR35-C. Do not allow loops to iterate beyond the end of an array |
OVERRUN_STATIC |
STR35-C. Do not copy data from an unbounded source to a fixed-length array |
RESOURCE_LEAK |
MEM31-C. Free dynamically allocated memory exactly once |
RETURN_LOCAL |
DCL30-C. Declare objects with appropriate storage durations |
REVERSE_INULL |
EXP34-C. Do not dereference null pointers |
REVERSE_NEGATIVE |
ARR32-C. Ensure size arguments for variable length arrays are in a valid range |
REVERSE_NEGATIVE |
INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
STACK_USE |
MEM05-C. Avoid large stack allocations |
SIZECHECK |
MEM35-C. Allocate sufficient memory for an object |
UNINIT |
EXP33-C. Do not reference uninitialized memory |
UNUSED_VALUE |
MSC13-C. Detect and remove unused values |
USE_AFTER_FREE |
MEM00-C. Allocate and free memory in the same module, at the same level of abstraction |
USE_AFTER_FREE |
MEM01-C. Store a new value in pointers immediately after free() |
USE_AFTER_FREE |
MEM30-C. Do not access freed memory |
USE_AFTER_FREE |
MEM31-C. Free dynamically allocated memory exactly once |
VARARGS |
No equivalent |