主要内容

Bug Finder 缺陷组和缺陷检查项的短名称

要通过代码注解对缺陷进行申述,需使用Bug Finder 缺陷检查项短名称中列出的检查项命令行名称或短名称。

您还可以启用对特定缺陷的检测,方法是将该缺陷的检查项短名称用作 -checkers 选项的参量。您可以通过组名称来指定缺陷组,而不用列出每个单独的缺陷,例如使用 numericaldata_flow 等组名称。

请参阅查找缺陷 (-checkers)Bug Finder 缺陷组

Bug Finder 缺陷组短名称

缺陷分组命令行参数
C++ 异常缺陷cpp_exceptions
并发性缺陷concurrency
加密缺陷cryptography
数据流缺陷data_flow
动态内存缺陷dynamic_memory
良好做法缺陷good_practice
数值缺陷numerical
面向对象的缺陷object_oriented
性能缺陷performance
编程缺陷programming
资源管理缺陷resource_management
静态内存缺陷static_memory
安全缺陷security
被污染的数据缺陷tainted_data

Bug Finder 缺陷检查项短名称

缺陷命令行名称
拷贝赋值运算符中未返回 *this RETURN_NOT_REF_TO_THIS
退出处理程序异常终止 EXIT_ABNORMAL_HANDLER
浮点操作数被吸收 FLOAT_ABSORPTION
访问具有临时存在时间的对象 TEMP_OBJECT_ACCESS
内存重新分配后对齐发生改变ALIGNMENT_CHANGE
从文件流中交替执行输入和输出运算间未执行刷新和定位调用IO_INTERLEAVING
声明语法具有多义性MOST_VEXING_PARSE
移动运算可能抛出异常MOVE_OPERATION_MAY_THROW
对空指针执行算术运算 NULL_PTR_ARITH
数组访问越界 OUT_BOUND_ARRAY
使用被污染的索引进行数组访问 TAINTED_ARRAY_INDEX
断言 ASSERT
可异步取消的线程ASYNCHRONOUSLY_CANCELLABLE_THREAD
原子加载和存储序列是非原子的ATOMIC_VAR_SEQUENCE_NOT_ATOMIC
在表达式中访问原子变量两次ATOMIC_VAR_ACCESS_TWICE
自动或线程局部变量逃逸出线程LOCAL_ADDR_ESCAPE_THREAD
错误的文件访问模式或状态 BAD_FILE_ACCESS_MODE_STATUS
丢弃特权的顺序错误 BAD_PRIVILEGE_DROP_ORDER
未调用基类赋值运算符 MISSING_BASE_ASSIGN_OP_CALL
基类析构函数不是虚函数 DTOR_NOT_VIRTUAL
对相同数据混合进行按位和算术运算 BITWISE_ARITH_MIX
对负值执行按位运算 BITWISE_NEG
保持锁时阻塞运算BLOCKING_WHILE_LOCKED
字符串格式设定符不正确导致缓冲区溢出 STR_FORMAT_BUFFER_OVERFLOW
对非平凡类对象执行字节运算MEMOP_ON_NONTRIVIAL_OBJ
由 const 限定类型的 C++ 引用后续被修改WRITE_REFERENCE_TO_CONST_TYPE
用 const 或 volatile 限定 C++ 引用类型CV_QUALIFIED_REFERENCE_TYPE
通过非原型函数指针进行调用UNPROTOTYPED_FUNC_CALL
使用非预期值调用 memset MEMSET_INVALID_VALUE
字符值被吸收转化为 EOF CHAR_EOF_CONFUSED
关闭之前已关闭的资源 DOUBLE_RESOURCE_CLOSE
由始终为 false 的条件停用的代码 DEACTIVATED_CODE
从外部控制路径执行的命令 TAINTED_PATH_CMD
常量块加密初始化向量 CRYPTO_CIPHER_CONSTANT_IV
常量加密密钥 CRYPTO_CIPHER_CONSTANT_KEY
常量参数值可能导致不必要的数据副本CONST_PARAMETER_VALUE
常量返回值可能导致不必要的数据副本CONST_RETURN_VALUE
常量 rvalue 引用参数可能导致不必要的数据副本CONST_RVALUE_REFERENCE_PARAMETER
常量 std::move 输入可能导致更高成本的对象副本EXPENSIVE_STD_MOVE_CONST_OBJECT
加密运算的上下文初始化不正确 CRYPTO_PKEY_INCORRECT_INIT
未正确初始化摘要运算的上下文 CRYPTO_MD_BAD_FUNCTION
转换或删除不完整的类指针INCOMPLETE_CLASS_PTR
初始化列表中未调用拷贝构造函数 MISSING_COPY_CTOR_CALL
内存重叠的复制 OVERLAPPING_COPY
修改源操作数的复制运算COPY_MODIFYING_SOURCE
关键数据成员不是私有类CRITICAL_DATA_MEMBER_DECLARED_PUBLIC
与指针相比的 string::c_str() 中的 C 字符串STD_STRING_C_STR_COMPARED_TO_POINTER
数据争用 DATA_RACE
相邻位字段的数据争用DATA_RACE_BIT_FIELDS
对标准库函数调用的数据争用 DATA_RACE_STD_LIB
死代码 DEAD_CODE
死锁 DEADLOCK
释放之前已释放的指针 DOUBLE_DEALLOCATION
声明不匹配 DECL_MISMATCH
捕获通用异常的 catch 声明CATCH_FOR_GENERIC_EXCEPTION
抛出通用异常的 throw 声明THROW_FOR_GENERIC_EXCEPTION
删除 void 指针 DELETE_OF_VOID_PTR
字符串操作中目标缓冲区上溢 STRLIB_BUFFER_OVERFLOW
字符串操作中目标缓冲区下溢 STRLIB_BUFFER_UNDERFLOW
销毁锁定互斥锁 DESTROY_LOCKED
从常量种子得出的确定性随机输出 RAND_SEED_CONSTANT
双锁 DOUBLE_LOCK
双解锁 DOUBLE_UNLOCK
重复代码DUPLICATED_CODE
空析构函数可能导致不必要的数据副本EMPTY_DESTRUCTOR_DEFINED
环境指针因前面的运算而失效 INVALID_ENV_POINTER
未检查 errno ERRNO_NOT_CHECKED
errno 未重置 MISSING_ERRNO_RESET
按值捕获异常 EXCP_CAUGHT_BY_VALUE
异常处理程序被上一处理程序隐藏 EXCP_HANDLER_HIDDEN
从相对路径执行二进制文件可以被外部执行者所控制 RELATIVE_PATH_CMD
执行外部控制命令 TAINTED_EXTERNAL_CMD
高成本成员初始化EXPENSIVE_MEMBER_INITIALIZATION
高成本 std::function 的类型定义EXPENSIVE_STD_FUNCTION
高成本的未使用对象EXPENSIVE_UNUSED_OBJECT
高成本使用 map 而不是使用 setEXPENSIVE_USE_OF_MAP_INSTEAD_OF_SET
高成本使用 std::any_castEXPENSIVE_ANY_CAST
高成本循环分配EXPENSIVE_ALLOC_IN_LOOP
高成本的常量 std::string 构造EXPENSIVE_CONSTANT_STD_STRING
基于范围的 for 循环迭代中的高成本复制EXPENSIVE_RANGE_BASED_FOR_LOOP_ITERATION
高成本动态强制转换EXPENSIVE_DYNAMIC_CAST
高成本局部变量复制EXPENSIVE_LOCAL_VARIABLE
高成本逻辑运算EXPENSIVE_LOGICAL_OPERATION
高成本的按值传递EXPENSIVE_PASS_BY_VALUE
高成本后增量运算EXPENSIVE_POST_INCREMENT
高成本的按值返回EXPENSIVE_RETURN_BY_VALUE
不必要 std::move 导致高成本返回EXPENSIVE_RETURN_STD_MOVE
高成本返回 const 对象EXPENSIVE_RETURN_CONST_OBJECT
高成本使用标准算法而未采用已有更高效的方法EXPENSIVE_USE_OF_STD_ALGORITHM
高成本使用容器的 count 方法EXPENSIVE_CONTAINER_COUNT
高成本使用容器的 insertion 方法EXPENSIVE_CONTAINER_INSERTION
高成本使用容器的 size 方法EXPENSIVE_CONTAINER_EMPTINESS_CHECK
高成本使用 map 的方括号运算符插入值或赋值EXPENSIVE_MAP_INSERT_OR_ASSIGN
高成本使用非成员 std::string operator+() 而非简单的 append 方法EXPENSIVE_STD_STRING_APPEND
高成本使用 std::string 方法而非更高效的重载EXPENSIVE_USE_OF_STD_STRING_METHODS
高成本使用 std::string 处理空字符串字面值UNNECESSARY_EMPTY_STRING_LITERAL
高成本使用 C 标准库中的字符串函数EXPENSIVE_USE_OF_C_STRING_API
高成本使用 substr() 缩短 std::stringEXPENSIVE_STD_STRING_RESIZE
在检查时间和使用时间之间(TOCTOU)进行文件访问 TOCTOU
向子进程暴露文件描述符FILE_EXPOSURE_TO_CHILD
文件无法编译file_does_not_compile
chroot() 之后未调用 chdir("/") 即进行文件操作 CHROOT_MISUSE
浮点数转换溢出 FLOAT_CONV_OVFL
浮点数除以零 FLOAT_ZERO_DIV
使用相等运算符进行浮点比较 BAD_FLOAT_OP
浮点数溢出 FLOAT_OVFL
格式字符串设定符和参量不匹配 STRING_FORMAT
从信号处理程序调用的函数不是异步安全的SIG_HANDLER_ASYNC_UNSAFE
从信号处理程序调用的函数不是异步安全的(严格)SIG_HANDLER_ASYNC_UNSAFE_STRICT
分配有绝对地址的函数指针 FUNC_PTR_ABSOLUTE_ADDR
可虚假失败的函数未置于循环中SPURIOUS_FAILURE_NOT_WRAPPED_IN_LOOP
可虚假唤醒的函数未置于循环中SPURIOUS_WAKEUP_NOT_WRAPPED_IN_LOOP
缓冲区大小被硬编码 HARD_CODED_BUFFER_SIZE
循环边界被硬编码 HARD_CODED_LOOP_BOUNDARY
用于操作内存的对象大小被硬编码 HARD_CODED_MEM_SIZE
敏感数据被硬编码HARD_CODED_SENSITIVE_DATA
使用外部控制元素进行主机更改 TAINTED_HOSTID
不正确的数组初始化 IMPROPER_ARRAY_INIT
不正确的 erase-remove 惯用法STD_REMOVE_WITHOUT_ERASE
对设备文件进行不当的 I/O 操作INAPPROPRIATE_IO_ON_DEVICE
对 RSA 算法运算使用不兼容的填充 CRYPTO_RSA_BAD_PADDING
类型不兼容导致无法覆盖 VIRTUAL_FUNC_HIDING
加密运算不一致 CRYPTO_CIPHER_BAD_FUNCTION
传递给 va_arg 的数据类型不正确 VA_ARG_INCORRECT_TYPE
加密算法的密钥不正确 CRYPTO_PKEY_INCORRECT_KEY
缩进不正确的语句INCORRECT_INDENTATION
网络连接操作顺序不正确 BAD_NETWORK_CONNECT_ORDER
不正确的测试注册或定义PSTUNIT_MISUSE_REGISTRATION
不正确地使用模拟 APIPSTUNIT_MISUSE_MOCKING
不正确地使用测试脚手架PSTUNIT_MISUSE_FIXTURES
不正确地使用测试设置/拆解 APIPSTUNIT_MISUSE_SETUP_TEARDOWN
不正确的指针缩放 BAD_PTR_SCALING
灵活数组成员大小的语法不正确FLEXIBLE_ARRAY_MEMBER_INCORRECT_SIZE
向 va_start 传递不正确的类型数据VA_START_INCORRECT_TYPE
在 C++ 中不正确地使用 offsetofOFFSETOF_MISUSE
不正确使用 va_startVA_START_MISUSE
不正确的值转发INCORRECT_VALUE_FORWARDING
字符串长度计算效率低下INEFFICIENT_BASIC_STRING_LENGTH
低效使用 for 循环PREFER_RANGE_BASED_FOR_LOOPS
低效使用 sprintfinefficient_sprintf
无限循环INFINITE_LOOP
结构体填充可能导致信息泄漏 PADDING_INFO_LEAK
未遵守内联约束 INLINE_CONSTRAINT_NOT_RESPECTED
整数常量溢出INT_CONSTANT_OVFL
整数转换溢出 INT_CONV_OVFL
整数除以零 INT_ZERO_DIV
整数溢出 INT_OVFL
超出整数精度INT_PRECISION_EXCEEDED
无效的内存组织假设 INVALID_MEMORY_ASSUMPTION
无效的指针删除 BAD_DELETE
无效的文件位置INVALID_FILE_POS
无效的指针释放 BAD_FREE
无效的迭代器用法INVALID_ITERATOR_USAGE
无效的科学记数法格式INVALID_NOTATION_ON_E_CONSTANT
无效的 == 运算符使用 BAD_EQUAL_EQUAL_USE
无效的 = 运算符使用 BAD_EQUAL_USE
无效的标准库浮点例程使用 FLOAT_STD_LIB
无效的标准库整数例程使用 INT_STD_LIB
无效的标准库内存例程使用 MEM_STD_LIB
无效的标准库例程使用 OTHER_STD_LIB
无效的标准库字符串例程使用 STR_STD_LIB
无效的 va_list 参量 INVALID_VA_LIST_ARG
连接已连接的线程或分离已分离的线程DOUBLE_JOIN_OR_DETACH
Lambda 用作 typeid 操作数LAMBDA_TYPE_MISUSE
LDAP 注入LDAP_INJECTION
从外部控制路径加载的库 TAINTED_PATH_LIB
一行包含多条语句 MORE_THAN_ONE_STATEMENT
从相对路径加载库可以被外部执行者所控制 RELATIVE_PATH_LIB
循环界限值被污染 TAINTED_LOOP_BOUNDARY
以分号终止的宏SEMICOLON_TERMINATED_MACRO
包含多个语句的宏MULTI_STMT_MACRO
构造函数中存在未初始化的成员 NON_INIT_MEMBER
内存分配大小被污染 TAINTED_MEMORY_ALLOC_SIZE
比较浮点值内存 MEMCMP_FLOAT
比较填充数据内存 MEMCMP_PADDING_DATA
比较字符串内存 MEMCMP_STRINGS
内存泄漏 MEM_LEAK
方法不是常量METHOD_NOT_CONST
数据长度和大小不匹配 DATA_LENGTH_MISMATCH
Windows 上的分配/取消分配函数不匹配WIN_MISMATCH_DEALLOC
RSA 算法缺失盲化 CRYPTO_RSA_NO_BLINDING
缺失块加密初始化向量 CRYPTO_CIPHER_NO_IV
switch case 缺失 break MISSING_SWITCH_BREAK
传输数据时未对字节重新排序MISSING_BYTESWAP
缺失对容器保留方法的调用MISSING_CONTAINER_RESERVE
切换条件缺少 case MISSING_SWITCH_CASE
缺失证书认证中心列表CRYPTO_SSL_NO_CA
缺失加密算法 CRYPTO_CIPHER_NO_ALGORITHM
缺失要处理的加密数据 CRYPTO_CIPHER_NO_DATA
缺失加密最终步骤 CRYPTO_CIPHER_NO_FINAL
缺失加密密钥 CRYPTO_CIPHER_NO_KEY
缺失 constexpr 设定符MISSING_CONSTEXPR
缺失用于加密、解密或签名运算的数据 CRYPTO_PKEY_NO_DATA
缺失显式关键字 MISSING_EXPLICIT_KEYWORD
哈希更新运算后缺失最终步骤CRYPTO_MD_NO_FINAL
缺失哈希算法CRYPTO_MD_NO_ALGORITHM
缺失锁 BAD_UNLOCK
字符串数组中缺失 null MISSING_NULL_CHAR
线程属性缺失初始化或重复初始化BAD_THREAD_ATTRIBUTE
未重载对应的分配或释放函数MISSING_OVERLOAD_NEW_DELETE_PAIR
RSA 算法缺失填充 CRYPTO_RSA_NO_PADDING
缺失密钥生成参数 CRYPTO_PKEY_NO_PARAMS
缺失对等密钥 CRYPTO_PKEY_NO_PEER
缺失私钥 CRYPTO_PKEY_NO_PRIVATE_KEY
缺失 X.509 证书的私钥CRYPTO_SSL_NO_PRIVATE_KEY
缺失公钥 CRYPTO_PKEY_NO_PUBLIC_KEY
未对释放的指针进行重置 MISSING_FREED_PTR_RESET
缺失 return 语句 MISSING_RETURN
哈希运算缺失加密盐CRYPTO_MD_NO_SALT
缺失解锁 BAD_LOCK
缺失虚拟继承 MISSING_VIRTUAL_INHERITANCE
缺失 X.509 证书CRYPTO_SSL_NO_CERTIFICATE
误用 FILE 对象FILE_OBJECT_MISUSE
误用 errno ERRNO_MISUSE
在信号处理程序中误用 errno SIG_HANDLER_ERRNO_MISUSE
误用窄字符串或宽字符串NARROW_WIDE_STR_MISUSE
误用 readlink() READLINK_MISUSE
误用不可重入标准函数的返回值 NON_REENTRANT_STD_RETURN
误用符号扩展字符值 CHARACTER_MISUSE
误用具有灵活数组成员的结构体FLEXIBLE_ARRAY_MEMBER_STRUCT_MISUSE
修改由不可重入标准函数返回的内部缓冲区 WRITE_INTERNAL_BUFFER_RETURNED_FROM_STD_FUNC
对 const 对象执行移动运算MOVE_CONST_OBJECT
移动运算使用复制MOVE_OPERATION_USES_COPY
使用的多个互斥锁基于同一条件变量MULTI_MUTEX_WITH_ONE_COND_VAR
多个线程等待同一条件变量SIGNALED_COND_VAR_NOT_UNIQUE
未向上下文添加数据CRYPTO_MD_NO_DATA
Noexcept 函数因异常而退出NOEXCEPT_FUNCTION_THROWS
不符合 AUTOSAR 规范autosar_lib_non_compliance
未初始化的指针 NON_INIT_PTR
未初始化的变量 NON_INIT_VAR
不安全的哈希算法 CRYPTO_MD_WEAK_HASH
不安全的密钥生成参数 CRYPTO_PKEY_WEAK_PARAMS
不安全的 RSA 公钥指数 CRYPTO_RSA_LOW_EXPONENT
不安全的 SSL/TLS 协议 CRYPTO_SSL_WEAK_PROTOCOL
空指针 NULL_PTR
对象切片 OBJECT_SLICING
打开之前已打开的资源 DOUBLE_RESOURCE_OPEN
运算符 new 未重载可能过度对齐的类MISSING_OVERLOAD_NEW_FOR_ALIGNED_OBJ
重叠赋值 OVERLAPPING_ASSIGN
未完整访问的数组 PARTIALLY_ACCESSED_ARRAY
部分覆盖重载的虚函数 PARTIAL_OVERRIDE
部分重复代码ALMOST_DUPLICATED_CODE
存储在文件系统中的纯文本密码PLAIN_TEXT_PASSWORD_IN_FILESYSTEM
指针访问越界 OUT_BOUND_PTR
使用被污染的偏移量进行指针解引用 TAINTED_PTR_OFFSET
指向销毁的临时对象的指针或引用POINTER_TO_TEMPORARY_OBJECT
堆栈变量的指针或引用超出作用域 LOCAL_ADDR_ESCAPE
指向未初始化值的指针转换为常量指针 NON_INIT_PTR_CONV
可能发生复制粘贴错误COPY_PASTE_ERROR
可能无效的布尔操作数运算INVALID_OPERATION_ON_BOOLEAN
可能的 sizeof 误用 SIZEOF_MISUSE
switch 表达式的数据类型可能不当INAPPROPRIATE_TYPE_IN_SWITCH
运算符优先级规则导致可能的非预期表达式计算 OPERATOR_PRECEDENCE
整数到浮点数的转换存在精度损失INT_TO_FLOAT_PRECISION_LOSS
预定义宏用作对象 MACRO_USED_AS_OBJECT
可预测的块加密初始化向量 CRYPTO_CIPHER_PREDICTABLE_IV
可预测的加密密钥 CRYPTO_CIPHER_PREDICTABLE_KEY
从可预测种子得出的可预测随机输出 RAND_SEED_PREDICTABLE
在宏参量中使用预处理器指令 PRE_DIRECTIVE_MACRO_ARG
特权丢弃未经验证 MISSING_PRIVILEGE_DROP_CHECK
公共静态字段不是常量PUBLIC_STATIC_FIELD_NOT_CONST
在转换中删除限定符 QUALIFIER_MISMATCH
sizeof 操作数中的冗余表达式SIZEOF_USELESS_OP
引用未命名的临时文件LOCAL_REF_TO_UNNAMED_TEMPORARY
资源注入RESOURCE_INJECTION
资源泄漏 RESOURCE_LEAK
未检查敏感函数的返回值 RETURN_NOT_CHECKED
从计算异常信号处理程序返回结果SIG_HANDLER_COMP_EXCP_RETURN
向封装数据成员返回非常量句柄 BREAKING_DATA_ENCAPSULATION
移位运算的右操作数越界 SHIFT_OVFL
未在运算符中测试自赋值 MISSING_SELF_ASSIGN_TEST
分号与 if、for 或 while 语句在同一行SEMICOLON_CTRL_STMT_SAME_LINE
敏感数据被打印输出 SENSITIVE_DATA_PRINT
释放前未清除敏感堆内存 SENSITIVE_HEAP_NOT_CLEARED
未检查服务器证书的通用名CRYPTO_SSL_HOSTNAME_NOT_CHECKED
在信号处理程序内访问共享数据SIG_HANDLER_SHARED_OBJECT
负值移位 SHIFT_NEG
不安全的宏中带副作用的参量SIDE_EFFECT_IN_UNSAFE_MACRO_ARG
表达式的副作用被忽略 SIDE_EFFECT_IGNORED
从信号处理程序内部调用 signalSIG_HANDLER_CALLING_SIGNAL
在多线程程序中调用 signalSIGNAL_USE_IN_MULTITHREADED_PROGRAM
符号变化整数转换溢出 SIGN_CHANGE
SQL 注入SQL_INJECTION
用不正确的参量调用标准函数 STD_FUNC_ARG_MISMATCH
静态未调用函数 UNCALLED_FUNC
std::endl 可能导致不必要的刷新STD_ENDL_USE
对不可移动类型调用 std::moveSTD_MOVE_UNMOVABLE_TYPE
用悬空指针初始化 std::string_viewDANGLING_STRING_VIEW
可能带非预期副作用的流参量 STREAM_WITH_SIDE_EFFECT
在指向不同数组的指针之间做减法或进行比较PTR_TO_DIFF_ARRAY
除法操作数被污染 TAINTED_INT_DIVISION
模操作数被污染 TAINTED_INT_MOD
被污染的 NULL 或不以 null 结尾的字符串 TAINTED_STRING
符号变化转换被污染 TAINTED_SIGN_CHANGE
可变长度数组大小被污染 TAINTED_VLA_SIZE
敏感函数使用了污染源TAINTED_SOURCE_USE_CUSTOM
字符串格式被污染 TAINTED_STRING_FORMAT
线程特有内存泄漏THREAD_MEM_LEAK
Throw 参量表达式调用 newTHROW_EXPRESSION_CALLS_NEW
Throw 参量出现意外异常THROW_ARGUMENT_EXPRESSION_THROWS
未设置 TLS/SSL 连接方法CRYPTO_SSL_NO_ROLE
TLS/SSL 连接方法设置不正确CRYPTO_SSL_BAD_ROLE
va_arg 调用次数相对当前参量列表太多 TOO_MANY_VA_ARG_CALLS
Typedef 不匹配 TYPEDEF_MISMATCH
Umask 与 chmod-style 参量一起使用 BAD_UMASK
未捕获异常UNCAUGHT_EXCEPTION
未捕获异常UNCAUGHT_EXCEPTION
不确定的内存清理UNCERTAIN_MEMORY_CLEANING
堆栈中存在未清除的敏感数据 SENSITIVE_STACK_NOT_CLEARED
通过标记串联创建通用字符名称 PRE_UCNAME_JOIN_TOKENS
未修改的变量未使用 const 进行限定UNMODIFIED_VAR_NOT_CONST
头文件中未命名的命名空间UNNAMED_NAMESPACE_IN_HEADER
在重新分配前执行不必要的构造UNNECESSARY_CONSTRUCTION_BEFORE_ASSIGNMENT
不必要的特殊成员函数实现UNNECESSARY_IMPL_OF_SPECIAL_MEMBER_FUNCTION
对参数的不必要引用EXPENSIVE_PASS_BY_REFERENCE
不必要的填充UNNECESSARY_STRUCT_PADDING
不必要地使用 std::string::c_str() 或等效的字符串方法EXPENSIVE_C_STR_STD_STRING_CONSTRUCTION
无保护动态内存分配 UNPROTECTED_MEMORY_ALLOCATION
不可达代码 UNREACHABLE
不可靠的函数指针转换 FUNC_CAST
不可靠的指针转换 PTR_CAST
不安全的系统函数调用UNSAFE_SYSTEM_CALL
指针和整数之间的不安全转换 BAD_INT_PTR_CAST
从字符串到数值的不安全转换 UNSAFE_STR_TO_NUMERIC
不安全的标准加密函数 UNSAFE_STD_CRYPT
不安全的标准函数 UNSAFE_STD_FUNC
无符号整数常量溢出UINT_CONSTANT_OVFL
无符号整数转换溢出 UINT_CONV_OVFL
无符号整数溢出 UINT_OVFL
对测试编写 API 使用了不受支持的语法PSTUNIT_UNSUPPORTED_SYNTAX
未使用的变量UNUSED_VARIABLE
未使用的参数 UNUSED_PARAMETER
无用的 if 条件 USELESS_IF
无用包含USELESS_INCLUDE
无用预处理器条件句指令USELESS_PREPROC_CONDITION
使用禁止的 C/C++ 关键字FORBIDDEN_KEYWORD
使用禁止的函数FORBIDDEN_FUNC
使用禁止的宏FORBIDDEN_MACRO
使用自动变量作为 putenv 族函数参量PUTENV_AUTO_VAR
使用危险标准函数 DANGEROUS_STD_FUNC
使用外部控制的环境变量 TAINTED_ENV_VARIABLE
使用不确定字符串INDETERMINATE_STRING
使用大小参量为零的 memset MEMSET_INVALID_SIZE
使用 new 或 make_unique,而非更高效的 make_sharedMISSING_MAKE_SHARED
使用不安全的临时文件 NON_SECURE_TEMP_FILE
使用过时的标准函数 OBSOLETE_STD_FUNC
在未检查最大缓冲区的情况下使用路径操作函数 PATH_BUFFER_OVERFLOW
对数值使用纯字符类型 BAD_PLAIN_CHAR_USE
使用之前已关闭的资源 CLOSED_RESOURCE_USE
使用之前已释放的指针 FREED_PTR
使用 setjmp/longjmp SETJMP_LONGJMP_USE
使用信号终止线程THREAD_KILLED_WITH_SIGNAL
无用的捕获USELESS_CAPTURE
使用被污染的指针TAINTED_PTR
使用被污染的指针TAINTED_PTR
使用未定义的线程 IDUNDEFINED_THREAD_ID
大小不为正数的可变长度数组 NON_POSITIVE_VLA_SIZE
变量遮蔽 VAR_SHADOWING
易受攻击的路径操作 PATH_TRAVERSAL
易受攻击的权限分配 DANGEROUS_PERMISSIONS
易受攻击的伪随机数生成器 VULNERABLE_PRNG
弱加密算法 CRYPTO_CIPHER_WEAK_CIPHER
弱加密模式 CRYPTO_CIPHER_WEAK_MODE
对 RSA 算法使用弱填充 CRYPTO_RSA_WEAK_PADDING
写入后未被读取 USELESS_WRITE
写入 const 限定对象 CONSTANT_OBJECT_WRITE
写入只读资源 READ_ONLY_RESOURCE_WRITE
错误分配转换对象的大小 OBJECT_SIZE_MISMATCH
在 sizeof 中使用错误的类型 PTR_SIZEOF_MISMATCH
未检查 X.509 对等证书CRYPTO_SSL_CERT_NOT_CHECKED

另请参阅

主题