Skip to main content
assistive.skiplink.to.breadcrumbs
assistive.skiplink.to.header.menu
assistive.skiplink.to.action.menu
assistive.skiplink.to.quick.search
Log in
Confluence
Spaces
Hit enter to search
Help
Online Help
Keyboard Shortcuts
Feed Builder
What’s new
Available Gadgets
About Confluence
Log in
SEI CERT C Coding Standard
Pages
Boards
Space shortcuts
Dashboard
Secure Coding Home
Android
C
C++
Java
Perl
Page tree
Browse pages
Configure
Space tools
View Page
A
t
tachments (0)
Page History
Page Information
View in Hierarchy
View Source
Export to PDF
Export to Word
Pages
…
SEI CERT C Coding Standard
4 Back Matter
EE. Analyzers
Cppcheck Premium_V
Page Information
Title:
Cppcheck Premium_V
Author:
David Svoboda
Sep 13, 2024
Last Changed by:
Swasti Shrivastava
Sep 14, 2024
Tiny Link:
(useful for email)
https://wiki.sei.cmu.edu/confluence/x/BADnHg
Export As:
Word
·
PDF
Incoming Links
SEI CERT C Coding Standard (73)
Page:
CON39-C. Do not join or detach a thread that was previously joined or detached
Page:
FIO34-C. Distinguish between characters read from a file and EOF or WEOF
Page:
INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
Page:
SIG30-C. Call only asynchronous-safe functions within signal handlers
Page:
FLP36-C. Preserve precision when converting integral values to floating-point type
Page:
DCL40-C. Do not create incompatible declarations of the same function or object
Page:
INT32-C. Ensure that operations on signed integers do not result in overflow
Page:
MEM34-C. Only free memory allocated dynamically
Page:
ENV30-C. Do not modify the object referenced by the return value of certain functions
Page:
EXP37-C. Call functions with the correct number and type of arguments
Page:
MEM31-C. Free dynamically allocated memory when no longer needed
Page:
MSC39-C. Do not call va_arg() on a va_list that has an indeterminate value
Page:
FIO44-C. Only use values for fsetpos() that are returned from fgetpos()
Page:
MEM36-C. Do not modify the alignment of objects by calling realloc()
Page:
EXP33-C. Do not read uninitialized memory
Page:
MSC37-C. Ensure that control never reaches the end of a non-void function
Page:
INT35-C. Use correct integer precisions
Page:
Cppcheck Premium
Page:
MSC33-C. Do not pass invalid data to the asctime() function
Page:
CON35-C. Avoid deadlock by locking in a predefined order
Page:
EXP46-C. Do not use a bitwise operator with a Boolean-like operand
Page:
PRE30-C. Do not create a universal character name through concatenation
Page:
FLP37-C. Do not use object representations to compare floating-point values
Page:
MEM33-C. Allocate and copy structures containing a flexible array member dynamically
Page:
CON34-C. Declare objects shared between threads with appropriate storage durations
Page:
MEM35-C. Allocate sufficient memory for an object
Page:
DCL41-C. Do not declare variables inside a switch statement before the first case label
Page:
INT30-C. Ensure that unsigned integer operations do not wrap
Page:
ERR32-C. Do not rely on indeterminate values of errno
Page:
DCL31-C. Declare identifiers before using them
Page:
DCL30-C. Declare objects with appropriate storage durations
Page:
EXP40-C. Do not modify constant objects
Page:
ARR39-C. Do not add or subtract a scaled integer to a pointer
Page:
CON36-C. Wrap functions that can spuriously wake up in a loop
Page:
ARR37-C. Do not add or subtract an integer to a pointer to a non-array object
Page:
EXP43-C. Avoid undefined behavior when using restrict-qualified pointers
Page:
DCL39-C. Avoid information leakage when passing a structure across a trust boundary
Page:
FLP30-C. Do not use floating-point variables as loop counters
Page:
EXP30-C. Do not depend on the order of evaluation for side effects
Page:
FIO38-C. Do not copy a FILE object
Page:
EXP39-C. Do not access a variable through a pointer of an incompatible type
Page:
CON40-C. Do not refer to an atomic variable twice in an expression
Page:
ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Page:
CON30-C. Clean up thread-specific storage
Page:
MEM30-C. Do not access freed memory
Page:
CON33-C. Avoid race conditions when using library functions
Page:
MSC30-C. Do not use the rand() function for generating pseudorandom numbers
Page:
ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
Page:
CON37-C. Do not call signal() in a multithreaded program
Page:
ARR32-C. Ensure size arguments for variable length arrays are in a valid range
Page:
EXP42-C. Do not compare padding data
Page:
FIO30-C. Exclude user input from format strings
Page:
EXP35-C. Do not modify objects with temporary lifetime
Page:
STR38-C. Do not confuse narrow and wide character strings and functions
Page:
INT36-C. Converting a pointer to integer or integer to pointer
Page:
SIG34-C. Do not call signal() from within interruptible signal handlers
Page:
CON32-C. Prevent data races when accessing bit-fields from multiple threads
Page:
DCL37-C. Do not declare or define a reserved identifier
Page:
EXP45-C. Do not perform assignments in selection statements
Page:
MSC32-C. Properly seed pseudorandom number generators
Page:
STR34-C. Cast characters to unsigned char before converting to larger integer sizes
Page:
EXP36-C. Do not cast pointers into more strictly aligned pointer types
Page:
MSC38-C. Do not treat a predefined identifier as an object if it might only be implemented as a macro
Page:
PRE31-C. Avoid side effects in arguments to unsafe macros
Page:
DCL38-C. Use the correct syntax when declaring a flexible array member
Page:
INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
Page:
INT34-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
Page:
DCL36-C. Do not declare an identifier with conflicting linkage classifications
Page:
MSC40-C. Do not violate constraints
Page:
CON31-C. Do not destroy a mutex while it is locked
Page:
CON38-C. Preserve thread safety and liveness when using condition variables
Page:
CON41-C. Wrap functions that can fail spuriously in a loop
Page:
EXP32-C. Do not access a volatile object through a nonvolatile reference
Hierarchy
Parent Page
Page:
EE. Analyzers
Labels
There are no labels assigned to this page.
Recent Changes
Time
Editor
Sep 14, 2024 04:45
Swasti Shrivastava
View Changes
Sep 13, 2024 11:38
David Svoboda
View Page History
Overview
Content Tools
{"serverDuration": 90, "requestCorrelationId": "d07ffa8cc24909bc"}