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
CodeSonar
Page Information
Title:
CodeSonar
Author:
Robert Seacord
Jul 30, 2014
Last Changed by:
David Svoboda
Oct 14, 2024
Tiny Link:
(useful for email)
https://wiki.sei.cmu.edu/confluence/x/VNUxBQ
Export As:
Word
·
PDF
Incoming Links
SEI CERT Oracle Coding Standard for Java (47)
Page:
DCL00-J. Prevent class initialization cycles
Page:
MSC05-J. Do not exhaust heap space
Page:
MET08-J. Preserve the equality contract when overriding the equals() method
Page:
SER02-J. Sign then seal objects before sending them outside a trust boundary
Page:
SER10-J. Avoid memory and resource leaks during serialization
Page:
EXP06-J. Expressions used in assertions must not produce side effects
Page:
NUM00-J. Detect or prevent integer overflow
Page:
ERR09-J. Do not allow untrusted code to terminate the JVM
Page:
SEC06-J. Do not rely on the default automatic signature verification provided by URLClassLoader and java.util.jar
Page:
IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method
Page:
ERR08-J. Do not catch NullPointerException or any of its ancestors
Page:
EXP02-J. Do not use the Object.equals() method to compare two arrays
Page:
MET10-J. Follow the general contract when implementing the compareTo() method
Page:
SEC05-J. Do not use reflection to increase accessibility of classes, methods, or fields
Page:
FIO01-J. Create files with appropriate access permissions
Page:
ERR02-J. Prevent exceptions while logging data
Page:
SEC01-J. Do not allow tainted variables in privileged blocks
Page:
LCK00-J. Use private final lock objects to synchronize classes that may interact with untrusted code
Page:
FIO09-J. Do not rely on the write() method to output integers outside the range 0 to 255
Page:
ENV03-J. Do not grant dangerous combinations of permissions
Page:
ENV06-J. Production code must not contain debugging entry points
Page:
SER12-J. Prevent deserialization of untrusted data
Page:
SER00-J. Enable serialization compatibility during class evolution
Page:
OBJ08-J. Do not expose private members of an outer class from within a nested class
Page:
IDS00-J. Prevent SQL injection
Page:
FIO02-J. Detect and handle file-related errors
Page:
LCK05-J. Synchronize access to static fields that can be modified by untrusted code
Page:
NUM13-J. Avoid loss of precision when converting primitive integers to floating-point
Page:
IDS03-J. Do not log unsanitized user input
Page:
ERR00-J. Do not suppress or ignore checked exceptions
Page:
SER06-J. Make defensive copies of private mutable components during deserialization
Page:
SER07-J. Do not use the default serialized form for classes with implementation-defined invariants
Page:
FIO04-J. Release resources when they are no longer needed
Page:
NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data
Page:
LCK09-J. Do not perform operations that can block while holding a lock
Page:
SER03-J. Do not serialize unencrypted sensitive data
Page:
MSC02-J. Generate strong random numbers
Page:
EXP00-J. Do not ignore values returned by methods
Page:
SER01-J. Do not deviate from the proper signatures of serialization methods
Page:
ERR07-J. Do not throw RuntimeException, Exception, or Throwable
Page:
IDS14-J. Do not trust the contents of hidden form fields
Page:
ENV01-J. Place all security-sensitive code in a single JAR and sign and seal it
Page:
IDS08-J. Sanitize untrusted data included in a regular expression
Page:
OBJ07-J. Sensitive classes must not let themselves be copied
Page:
EXP03-J. Do not use the equality operators when comparing values of boxed primitives
Page:
VNA00-J. Ensure visibility when accessing shared primitive variables
Page:
MET09-J. Classes that define an equals() method must also define a hashCode() method
SEI CERT C Coding Standard (188)
Page:
ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array
Page:
MSC06-C. Beware of compiler optimizations
Page:
POS30-C. Use the readlink() function properly
Page:
DCL39-C. Avoid information leakage when passing a structure across a trust boundary
Page:
EXP42-C. Do not compare padding data
Page:
FIO37-C. Do not assume that fgets() or fgetws() returns a nonempty string when successful
Page:
INT09-C. Ensure enumeration constants map to unique values
Page:
ARR32-C. Ensure size arguments for variable length arrays are in a valid range
Page:
ARR37-C. Do not add or subtract an integer to a pointer to a non-array object
Page:
EXP45-C. Do not perform assignments in selection statements
Page:
MSC11-C. Incorporate diagnostic tests using assertions
Page:
MSC21-C. Use robust loop termination conditions
Page:
SIG34-C. Do not call signal() from within interruptible signal handlers
Page:
DCL20-C. Explicitly specify void when a function accepts no arguments
Page:
MSC20-C. Do not use a switch statement to transfer control into a complex block
Page:
EXP30-C. Do not depend on the order of evaluation for side effects
Page:
PRE11-C. Do not conclude macro definitions with a semicolon
Page:
SIG02-C. Avoid using signals to implement normal functionality
Page:
POS52-C. Do not perform operations that can block while holding a POSIX lock
Page:
INT04-C. Enforce limits on integer values originating from tainted sources
Page:
MEM11-C. Do not assume infinite heap space
Page:
CON34-C. Declare objects shared between threads with appropriate storage durations
Page:
EXP47-C. Do not call va_arg with an argument of the incorrect type
Page:
EXP44-C. Do not rely on side effects in operands to sizeof, _Alignof, or _Generic
Page:
STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
Page:
DCL13-C. Declare function parameters that are pointers to values not changed by the function as const
Page:
DCL41-C. Do not declare variables inside a switch statement before the first case label
Page:
FLP36-C. Preserve precision when converting integral values to floating-point type
Page:
FIO21-C. Do not create temporary files in shared directories
Page:
INT32-C. Ensure that operations on signed integers do not result in overflow
Page:
INT13-C. Use bitwise operators only on unsigned operands
Page:
PRE02-C. Macro replacement lists should be parenthesized
Page:
FIO42-C. Close files when they are no longer needed
Page:
DCL02-C. Use visually distinct identifiers
Page:
SIG31-C. Do not access shared objects in signal handlers
Page:
SIG35-C. Do not return from a computational exception signal handler
Page:
CON35-C. Avoid deadlock by locking in a predefined order
Page:
MEM00-C. Allocate and free memory in the same module, at the same level of abstraction
Page:
API02-C. Functions that read or write to or from an array should take an argument to specify the source or target size
Page:
DCL19-C. Minimize the scope of variables and functions
Page:
EXP05-C. Do not cast away a const qualification
Page:
ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
Page:
POS38-C. Beware of race conditions when using fork and file descriptors
Page:
FIO30-C. Exclude user input from format strings
Page:
ARR00-C. Understand how arrays work
Page:
EXP35-C. Do not modify objects with temporary lifetime
Page:
CON37-C. Do not call signal() in a multithreaded program
Page:
ARR39-C. Do not add or subtract a scaled integer to a pointer
Page:
STR38-C. Do not confuse narrow and wide character strings and functions
Page:
DCL15-C. Declare file-scope objects or functions that do not need external linkage as static
Page:
INT02-C. Understand integer conversion rules
Page:
MSC33-C. Do not pass invalid data to the asctime() function
Page:
ERR30-C. Take care when reading errno
Page:
MSC17-C. Finish every set of statements associated with a case label with a break statement
Page:
WIN30-C. Properly pair allocation and deallocation functions
Page:
CON40-C. Do not refer to an atomic variable twice in an expression
Page:
EXP36-C. Do not cast pointers into more strictly aligned pointer types
Page:
EXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place
Page:
FIO44-C. Only use values for fsetpos() that are returned from fgetpos()
Page:
FLP32-C. Prevent or detect domain and range errors in math functions
Page:
POS49-C. When data must be accessed by multiple threads, provide a mutex and guarantee no adjacent data is also accessed
Page:
INT35-C. Use correct integer precisions
Page:
MSC41-C. Never hard code sensitive information
Page:
INT30-C. Ensure that unsigned integer operations do not wrap
Page:
EXP37-C. Call functions with the correct number and type of arguments
Page:
MEM05-C. Avoid large stack allocations
Page:
EXP08-C. Ensure pointer arithmetic is used correctly
Page:
CON38-C. Preserve thread safety and liveness when using condition variables
Page:
ERR34-C. Detect errors when converting a string to a number
Page:
PRE00-C. Prefer inline or static functions to function-like macros
Page:
DCL30-C. Declare objects with appropriate storage durations
Page:
POS34-C. Do not call putenv() with a pointer to an automatic variable as the argument
Page:
DCL16-C. Use "L," not "l," to indicate a long value
Page:
STR00-C. Represent characters using an appropriate type
Page:
CON33-C. Avoid race conditions when using library functions
Page:
MSC24-C. Do not use deprecated or obsolescent functions
Page:
DCL36-C. Do not declare an identifier with conflicting linkage classifications
Page:
STR02-C. Sanitize data passed to complex subsystems
Page:
INT05-C. Do not use input functions to convert character data if they cannot handle all possible inputs
Page:
STR04-C. Use plain char for characters in the basic character set
Page:
FIO02-C. Canonicalize path names originating from tainted sources
Page:
FLP34-C. Ensure that floating-point conversions are within range of the new type
Page:
MEM34-C. Only free memory allocated dynamically
Page:
STR37-C. Arguments to character-handling functions must be representable as an unsigned char
Page:
WIN00-C. Be specific when dynamically loading libraries
Page:
MSC38-C. Do not treat a predefined identifier as an object if it might only be implemented as a macro
Page:
PRE05-C. Understand macro replacement when concatenating tokens or performing stringification
Page:
POS48-C. Do not unlock or destroy another POSIX thread's mutex
Page:
POS54-C. Detect and handle POSIX library errors
Page:
CON07-C. Ensure that compound operations on shared variables are atomic
Page:
POS44-C. Do not use signals to terminate threads
Page:
ENV32-C. All exit handlers must return normally
Page:
FLP06-C. Convert integers to floating point for floating-point operations
Page:
MSC23-C. Beware of vendor-specific library and language differences
Page:
PRE32-C. Do not use preprocessor directives in invocations of function-like macros
Page:
DCL01-C. Do not reuse variable names in subscopes
Page:
FLP30-C. Do not use floating-point variables as loop counters
Page:
INT18-C. Evaluate integer expressions in a larger size before comparing or assigning to that size
Page:
CON01-C. Acquire and release synchronization primitives in the same module, at the same level of abstraction
Page:
MSC25-C. Do not use insecure or weak cryptographic algorithms
Page:
CON43-C. Do not allow data races in multithreaded code
Page:
CON36-C. Wrap functions that can spuriously wake up in a loop
Page:
DCL37-C. Do not declare or define a reserved identifier
Page:
INT07-C. Use only explicitly signed or unsigned char type for numeric values
Page:
MEM07-C. Ensure that the arguments to calloc(), when multiplied, do not wrap
Page:
STR06-C. Do not assume that strtok() leaves the parse string unchanged
Page:
CON30-C. Clean up thread-specific storage
Page:
STR07-C. Use the bounds-checking interfaces for string manipulation
Page:
WIN01-C. Do not forcibly terminate execution
Page:
MEM01-C. Store a new value in pointers immediately after free()
Page:
FIO08-C. Take care when calling remove() on an open file
Page:
MSC37-C. Ensure that control never reaches the end of a non-void function
Page:
FIO01-C. Be careful using functions that use file names for identification
Page:
CON39-C. Do not join or detach a thread that was previously joined or detached
Page:
PRE30-C. Do not create a universal character name through concatenation
Page:
ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
Page:
ERR33-C. Detect and handle standard library errors
Page:
INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
Page:
DCL11-C. Understand the type issues associated with variadic functions
Page:
MSC00-C. Compile cleanly at high warning levels
Page:
FIO10-C. Take care when using the rename() function
Page:
INT08-C. Verify that all integer values are in range
Page:
MSC18-C. Be careful while handling sensitive data, such as passwords, in program code
Page:
EXP15-C. Do not place a semicolon on the same line as an if, for, or while statement
Page:
FIO40-C. Reset strings on fgets() or fgetws() failure
Page:
MEM35-C. Allocate sufficient memory for an object
Page:
MSC07-C. Detect and remove dead code
Page:
MEM04-C. Beware of zero-length allocations
Page:
DCL07-C. Include the appropriate type information in function declarators
Page:
API07-C. Enforce type safety
Page:
MSC32-C. Properly seed pseudorandom number generators
Page:
DCL40-C. Do not create incompatible declarations of the same function or object
Page:
DCL03-C. Use a static assertion to test the value of a constant expression
Page:
SIG00-C. Mask signals handled by noninterruptible signal handlers
Page:
EXP43-C. Avoid undefined behavior when using restrict-qualified pointers
Page:
DCL18-C. Do not begin integer constants with 0 when specifying a decimal value
Page:
INT36-C. Converting a pointer to integer or integer to pointer
Page:
FIO47-C. Use valid format strings
Page:
FIO24-C. Do not open a file that is already open
Page:
DCL23-C. Guarantee that mutually visible identifiers are unique
Page:
STR05-C. Use pointers to const when referring to string literals
Page:
FIO46-C. Do not access a closed file
Page:
CON32-C. Prevent data races when accessing bit-fields from multiple threads
Page:
DCL04-C. Do not declare more than one variable per declaration
Page:
EXP34-C. Do not dereference null pointers
Page:
MEM30-C. Do not access freed memory
Page:
PRE31-C. Avoid side effects in arguments to unsafe macros
Page:
INT12-C. Do not make assumptions about the type of a plain int bit-field when used in an expression
Page:
POS51-C. Avoid deadlock with POSIX threads by locking in predefined order
Page:
STR34-C. Cast characters to unsigned char before converting to larger integer sizes
Page:
DCL00-C. Const-qualify immutable objects
Page:
EXP46-C. Do not use a bitwise operator with a Boolean-like operand
Page:
MSC12-C. Detect and remove code that has no effect or is never executed
Page:
EXP33-C. Do not read uninitialized memory
Page:
API00-C. Functions should validate their parameters
Page:
CON05-C. Do not perform operations that can block while holding a lock
Page:
SIG01-C. Understand implementation-specific details regarding signal handler persistence
Page:
STR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string
Page:
EXP14-C. Beware of integer promotion when performing bitwise operations on integer types smaller than int
Page:
POS05-C. Limit access to files by creating a jail
Page:
MEM33-C. Allocate and copy structures containing a flexible array member dynamically
Page:
SIG30-C. Call only asynchronous-safe functions within signal handlers
Page:
FIO34-C. Distinguish between characters read from a file and EOF or WEOF
Page:
MSC39-C. Do not call va_arg() on a va_list that has an indeterminate value
Page:
ENV33-C. Do not call system()
Page:
CON41-C. Wrap functions that can fail spuriously in a loop
Page:
EXP00-C. Use parentheses for precedence of operation
Page:
STR03-C. Do not inadvertently truncate a string
Page:
FIO45-C. Avoid TOCTOU race conditions while accessing files
Page:
EXP12-C. Do not ignore values returned by functions
Page:
MEM36-C. Do not modify the alignment of objects by calling realloc()
Page:
ENV30-C. Do not modify the object referenced by the return value of certain functions
Page:
ARR38-C. Guarantee that library functions do not form invalid pointers
Page:
WIN02-C. Restrict privileges when spawning child processes
Page:
MSC22-C. Use the setjmp(), longjmp() facility securely
Page:
INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
Page:
CON31-C. Do not destroy a mutex while it is locked
Page:
MSC13-C. Detect and remove unused values
Page:
ENV01-C. Do not make assumptions about the size of an environment variable
Page:
MSC30-C. Do not use the rand() function for generating pseudorandom numbers
Page:
DCL05-C. Use typedefs of non-pointer types only
Page:
FIO06-C. Create files with appropriate access permissions
Page:
FIO13-C. Never push back anything other than one read character
Page:
INT01-C. Use rsize_t or size_t for all integer values representing the size of an object
Page:
FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
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:
MEM31-C. Free dynamically allocated memory when no longer needed
Page:
MEM03-C. Clear sensitive information stored in reusable resources
SEI CERT C++ Coding Standard (24)
Page:
MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
Page:
CON55-CPP. Preserve thread safety and liveness when using condition variables
Page:
OOP54-CPP. Gracefully handle self-copy assignment
Page:
CON56-CPP. Do not speculatively lock a non-recursive mutex that is already owned by the calling thread
Page:
DCL53-CPP. Do not write syntactically ambiguous declarations
Page:
STR51-CPP. Do not attempt to create a std::string from a null pointer
Page:
MSC51-CPP. Ensure your random number generator is properly seeded
Page:
EXP52-CPP. Do not rely on side effects in unevaluated operands
Page:
EXP50-CPP. Do not depend on the order of evaluation for side effects
Page:
DCL50-CPP. Do not define a C-style variadic function
Page:
EXP59-CPP. Use offsetof() on valid types and members
Page:
OOP58-CPP. Copy operations must not mutate the source object
Page:
MEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity
Page:
CON53-CPP. Avoid deadlock by locking in a predefined order
Page:
CTR56-CPP. Do not use pointer arithmetic on polymorphic objects
Page:
CON54-CPP. Wrap functions that can spuriously wake up in a loop
Page:
ERR51-CPP. Handle all exceptions
Page:
EXP58-CPP. Pass an object of the correct type to va_start
Page:
CON52-CPP. Prevent data races when accessing bit-fields from multiple threads
Page:
OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
Page:
EXP51-CPP. Do not delete an array through a pointer of the incorrect type
Page:
DCL55-CPP. Avoid information leakage when passing a class object across a trust boundary
Page:
CON50-CPP. Do not destroy a mutex while it is locked
Page:
CON51-CPP. Ensure actively held locks are released on exceptional conditions
Hierarchy
Parent Page
Page:
EE. Analyzers
Labels
Global Labels (1)
analyzer
Recent Changes
Time
Editor
Oct 14, 2024 07:27
David Svoboda
View Changes
Feb 08, 2024 09:06
David Svoboda
View Changes
Sep 27, 2023 08:25
David Svoboda
View Changes
Jul 13, 2023 13:28
David Svoboda
View Changes
Jun 06, 2023 12:24
David Svoboda
View Page History
Outgoing Links
External Links (188)
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
SEI CERT C Coding Standard (1)
Page:
CodeSonar_V
Overview
Content Tools
{"serverDuration": 435, "requestCorrelationId": "cc9ac8d65b03f344"}