MISRA-C 2019

检查器代码 描述 默认严重性 默认情况下是否启用? 已创建 已修改
ABV.ANY_SIZE_ARRAY 缓冲区溢出 — 数组索引超出边界 1 false Pre-9.2 9.5
ABV.GENERAL 缓冲区溢出 — 数组索引超出边界 1 true 9.6 10.1、10.3、10.4、11.0、11.1、11.2, 2017.3
ABV.ITERATOR 缓冲区溢出 — 数组索引可能超出边界 1 true Pre-9.2 9.5、10.3
ABV.MEMBER 缓冲区溢出 — 数组索引超出边界 1 true 9.5 10.3
ABV.STACK 缓冲区溢出 — 局部数组索引超出边界 1 true Pre-9.2 9.5
ABV.TAINTED 因未经验证的输入而导致缓冲区溢出 1 true Pre-9.2 9.5、10.3、11.2
ABV.UNICODE.BOUND_MAP 映射特征函数中出现缓冲区溢出 1 false Pre-9.2 9.5
ABV.UNICODE.FAILED_MAP 映射函数失败 1 false Pre-9.2 9.5
ABV.UNICODE.NNTS_MAP 映射特征函数中出现缓冲区溢出 1 false Pre-9.2 9.5
ABV.UNICODE.SELF_MAP 映射函数失败 1 false 9.6
ABV.UNKNOWN_SIZE 缓冲区溢出 — 数组索引超出边界 1 true 9.6
ASSIGCOND.CALL 条件语句中的赋值(调用) 3 false Pre-9.2
ASSIGCOND.GEN 条件语句中的赋值 3 false Pre-9.2
BSTR.CAST.C 转换为 BSTR 的 C 样式类型 4 false Pre-9.2
BSTR.CAST.CPP 转换为 BSTR 的 C++ 样式类型 4 false Pre-9.2
BSTR.FUNC.ALLOC 对 BSTR 分配函数的错误调用 4 false Pre-9.2
BSTR.FUNC.FREE 对 BSTR 释放函数的错误调用 4 false Pre-9.2
BSTR.FUNC.LEN 尝试使用 BSTR 相关函数获取非 BSTR 字符串的长度 4 false Pre-9.2
BSTR.FUNC.REALLOC 对 BSTR 重新分配函数的错误调用 4 false Pre-9.2
BSTR.IA.ASSIGN BSTR 变量分配到非 BSTR 值 4 false Pre-9.2
BSTR.IA.INIT BSTR 变量使用非 BSTR 值初始化 4 false Pre-9.2
BSTR.OPS.ARITHM 采用 BSTR 值进行了非法算术运算 4 false Pre-9.2
BSTR.OPS.COMP 非法比较 BSTR 值 4 false Pre-9.2
BSTR.OPS.EQS 非法相等比较 BSTR 值 4 false Pre-9.2
BYTEORDER.HTON.SEND 缺少从主机到网络字节顺序的转换 3 false 9.2
BYTEORDER.HTON.WRITE 缺少从主机到网络字节顺序的转换 3 false 9.2
BYTEORDER.NTOH.READ 缺少从网络到主机字节顺序的转换 3 false 9.2
BYTEORDER.NTOH.RECV 缺少从网络到主机字节顺序的转换 3 false 9.2
CL.ASSIGN.NON_CONST_ARG 赋值运算符声明了非常量引用自变量 4 true 9.5
CL.ASSIGN.RETURN_CONST 赋值运算符返回常量引用 4 true 9.5
CL.ASSIGN.VOID 赋值运算符返回虚值 4 true 9.5
CL.FFM.ASSIGN 使用了释放内存(双重释放)- 无赋值 (=) 运算 3 true Pre-9.2 9.5
CL.FFM.COPY 使用了释放内存(双重释放)- 无复制构造函数 3 true Pre-9.2 9.5
CL.FMM 释放不匹配内存 - 在析构函数中 3 true Pre-9.2 9.5、10.1
CL.MLK 内存泄漏 - 在析构函数中 3 true Pre-9.2 9.5
CL.MLK.ASSIGN 内存泄漏 - 在赋值运算符中 3 true 10.1
CL.MLK.VIRTUAL 内存泄漏 - 可能在析构函数中 2 true Pre-9.2 9.5
CL.SELF-ASSIGN 使用了释放内存(双重释放)- 在赋值 (=) 运算中 2 true Pre-9.2 9.5
CL.SHALLOW.ASSIGN 使用了释放内存(双重释放)- 在赋值 (=) 运算中进行浅层复制 2 true 10.1
CL.SHALLOW.COPY 使用了释放内存(双重释放)- 在复制构造函数中进行浅层复制 2 true 10.1
CONC.DL 死锁 2 false 9.2
CONC.NO_UNLOCK 缺少变量解锁 2 true Pre-9.2
CONC.SLEEP 函数可能在关键部分被阻止 3 true Pre-9.2
CWARN.ALIGNMENT 使用了不正确的指针缩放 4 true 9.5
CWARN.BAD.PTR.ARITH 错误指针算术运算 4 false 10.0
CWARN.BITOP.SIZE 位运算符中不同大小的操作数 4 true 10.0
CWARN.BOOLOP.INC 布尔值递增或递减 4 true Pre-9.2 9.5
CWARN.CAST.VIRTUAL_INHERITANCE 从指向含虚拟方法的对象的指针到指向其派生类的指针的 C 样式转换 4 false 10.0
CWARN.CMPCHR.EOF “char”表达式与 EOF 常量进行比较 4 false 9.2 9.5
CWARN.CONSTCOND.DO “do”控制表达式为常量 4 false Pre-9.2 9.5
CWARN.CONSTCOND.IF “if”控制表达式为常量 4 false Pre-9.2 9.5
CWARN.CONSTCOND.SWITCH “Switch”选择器表达式为常量 4 false Pre-9.2 9.5
CWARN.CONSTCOND.TERNARY 条件表达式中的控制条件为常量 4 false Pre-9.2 9.5
CWARN.CONSTCOND.WHILE "while"控制表达式为常量 4 false Pre-9.2 9.5
CWARN.COPY.NOASSIGN 类定义复制构造函数,但未定义赋值运算符 4 false Pre-9.2 9.5、11.0
CWARN.DTOR.NONVIRT.DELETE 删除含虚拟方法且无虚拟析构函数的类中对象的表达式 2 true Pre-9.2 9.5
CWARN.DTOR.NONVIRT.NOTEMPTY 类具有继承自基本类的虚拟函数,但其析构函数不为虚拟和空 2 true Pre-9.2 9.5
CWARN.DTOR.NONVIRT.NOTEMPTY 删除类型为“指向 void 的指针”的对象的表达式 2 true Pre-9.2 9.5
CWARN.DTOR.VOIDPTR 删除类型为“指向 void 的指针”的对象的表达式 3 true 2019.3
CWARN.EMPTY.LABEL 空标签语句 4 false Pre-9.2 9.5
CWARN.EMPTY.TYPEDEF 缺少 typedef 名称 4 false Pre-9.2 9.5
CWARN.FUNCADDR 使用函数地址替代此函数的调用 2 false Pre-9.2 9.5
CWARN.HIDDEN.PARAM 参数被局部变量隐藏 4 false Pre-9.2 9.5
CWARN.IMPLICITINT 过时的“implicit int” 4 false Pre-9.2 9.5
CWARN.INCL.ABSOLUTE 绝对路径用于 include 指令中 4 false 9.6
CWARN.INCL.NO_INTERFACE 源文件不包含其接口标题 4 false 10.0
CWARN.INLINE.NONFUNC “inline”与非函数一起使用 4 false Pre-9.2 9.5
CWARN.MEMBER.INIT.ORDER 初始化列表中的成员没有按在类中的声明顺序列出 4 false 9.5 10.4
CWARN.MEM.NONPOD 内存操作例程应用于非 POD 对象 4 true 10.0
CWARN.MEMSET.SIZEOF.PTR 为应用于指针的“sizeof”调用了 memset 类型函数 4 false 10.0 10.3、11.1
CWARN.NOEFFECT.OUTOFRANGE 值超出范围 3 false 10.1
CWARN.NOEFFECT.SELF_ASSIGN 变量赋值到本身 4 false 9.2 9.5、10.4
CWARN.NOEFFECT.UCMP.GE 无符号值与 0 的比较始终为 true 4 true Pre-9.2 9.5
CWARN.NOEFFECT.UCMP.GE.MACRO 宏中无符号值与 0 的比较始终为 true 4 false Pre-9.2 9.5
CWARN.NOEFFECT.UCMP.LT 无符号值与 0 的比较始终为 false 4 true Pre-9.2 9.5
CWARN.NOEFFECT.UCMP.LT.MACRO 宏中无符号值与 0 的比较始终为 false 4 false Pre-9.2 9.5
CWARN.NULLCHECK.FUNCNAME 函数地址直接与 0 比较 4 true Pre-9.2 9.5
CWARN.OVERRIDE.CONST 由于“const”限定符不匹配,函数重写失败 4 true Pre-9.2 9.5
CWARN.PACKED.TYPEDEF 属性“packed”在 typedef 中被忽略 4 false Pre-9.2 9.5
CWARN.PASSBYVALUE.ARG 由值传递的函数参数过大 4 false Pre-9.2 9.5
CWARN.PASSBYVALUE.EXC 由值传递的异常对象过大 4 false Pre-9.2 9.5
CWARN.RET.MAIN main 返回错误类型 4 true Pre-9.2 9.5
CWARN.SIGNEDBIT 有符号的一位字段 4 true Pre-9.2 9.5
DBZ.CONST 出现零常量为除数的情况 1 false 10.3
DBZ.CONST.CALL 值“0”被传递到可将此值用作除数的函数 1 false 10.3
DBZ.GENERAL 可能出现零为除数的情况 1 false 10.3
DBZ.ITERATOR 循环迭代器中可能出现零为除数的情况 1 false 10.3
EFFECT 语句无效 4 false Pre-9.2
FMM.MIGHT 可能释放不匹配内存 2 true Pre-9.2 10.1
FMM.MUST 释放不匹配内存 1 true Pre-9.2 10.1
FNH.MIGHT 可能释放非堆内存 1 true Pre-9.2
FNH.MUST 释放非堆内存 2 true Pre-9.2
FREE.INCONSISTENT 内存释放不一致 3 false Pre-9.2
FUM.GEN.MIGHT 可能释放未分配内存 1 true Pre-9.2
FUM.GEN.MUST 释放未分配内存 1 true Pre-9.2
FUNCRET.GEN 非 void 函数未返回值 1 true Pre-9.2
FUNCRET.IMPLICIT 隐式返回 int 的非 void 函数未返回值 2 true Pre-9.2
HCC 使用硬编码凭据 2 true 11.1
HCC.PWD 使用硬编码密码 2 true 11.1
HCC.USER 使用硬编码用户名 2 true 11.1
INCONSISTENT.LABEL 案例标签不一致 4 true Pre-9.2 9.5
INCORRECT.ALLOC_SIZE 分配大小不正确 3 true Pre-9.2
INFINITE_LOOP.GLOBAL 无限循环 2 false 9.5
INFINITE_LOOP.LOCAL 无限循环 2 true 9.5 10.1、2017、 2017.3
INFINITE_LOOP.MACRO 无限循环 2 false 9.5
INVARIANT_CONDITION.GEN 条件中的不变表达式 3 false 10.1 10.2
INVARIANT_CONDITION.UNREACH 条件中的不变表达式 3 false 10.1 10.2
ITER.CONTAINER.MODIFIED 使用了无效迭代器 3 true Pre-9.2 2017
ITER.END.DEREF.MIGHT 取消引用“末端”迭代器 3 true 9.5
ITER.END.DEREF.MUST 取消引用“末端”迭代器 3 true 9.5
ITER.INAPPROPRIATE 使用含有不适当的容器对象的迭代器 4 true 9.5
ITER.INAPPROPRIATE.MULTIPLE 使用含有不适当的容器对象的迭代器 4 true 9.5
LA_UNUSED 未使用标签 4 false Pre-9.2
LOCRET.ARG 函数返回局部变量的地址 1 true Pre-9.2 9.5
LOCRET.GLOB 函数返回局部变量的地址 1 true Pre-9.2 9.5
LOCRET.RET 函数返回局部变量的地址 1 true Pre-9.2 9.5
LS.CALL GUI 函数中非本地化字符串的可疑使用 3 false 11.0
LS.CALL.STRING GUI 函数中非本地化字符串的可疑使用 3 false 11.0
LV_UNUSED.GEN 未使用局部变量 4 false Pre-9.2
MLK.MIGHT 内存可能泄漏 2 true Pre-9.2 9.2、9.5
MLK.MUST 内存泄漏 2 true Pre-9.2 9.2、9.5、11.1、11.3
MLK.RET.MIGHT 内存可能泄漏 2 false 9.6
MLK.RET.MUST 内存泄漏 2 true 9.6
NNTS.MIGHT 缓冲区溢出 - 非 null 结尾字符串 1 true Pre-9.2 9.2、10.3
NNTS.MUST 缓冲区溢出 - 非 null 结尾字符串 1 true Pre-9.2 9.2、10.3
NNTS.TAINTED 未经验证的用户输入导致缓冲区溢出 - 非 Null 结尾的字符串 1 true Pre-9.2 9.2、10.3
NPD.CHECK.CALL.MIGHT 在对指针主动进行 NULL 检查后,指针可能被传递给可将其取消引用的函数 1 true Pre-9.2 9.2、9.5
NPD.CHECK.CALL.MUST 在对指针主动进行 NULL 检查后,指针将被传递给可能将其取消引用的函数 1 true Pre-9.2 9.2、9.5
NPD.CHECK.MIGHT 在对指针主动进行 NULL 检查后,指针可能被取消引用 1 true Pre-9.2 9.2、9.5
NPD.CHECK.MUST 在对指针主动进行 NULL 检查后,指针将被取消引用 1 true Pre-9.2 9.2、9.5
NPD.CONST.CALL NULL 被传递给可将其取消引用的函数 1 false Pre-9.2 9.2、9.5
NPD.CONST.DEREF NULL 被取消引用 1 false Pre-9.2 9.2、9.5
NPD.FUNC.CALL.MIGHT 可能返回 NULL 的函数的结果可能被传递给可能将其取消引用的其他函数 1 false Pre-9.2 9.2、9.5
NPD.FUNC.CALL.MUST 可能返回 NULL 的函数的结果将被传递给可能将其取消引用的其他函数 1 false Pre-9.2 9.2、9.5
NPD.FUNC.MIGHT 可以返回 NULL 的函数的结果可能被取消引用 1 true Pre-9.2 9.2、9.5
NPD.FUNC.MUST 可能返回 NULL 的函数的结果将被取消引用 1 true Pre-9.2 9.2、9.5、10.4
NPD.GEN.CALL.MIGHT Null 指针可能被传递给可能将其取消引用的函数 1 true Pre-9.2 9.2、9.5
NPD.GEN.CALL.MUST Null 指针将被传递给可能将其取消引用的函数 1 true Pre-9.2 9.2、9.5
NPD.GEN.MIGHT Null 指针可能被取消引用 1 true Pre-9.2 9.2、9.5
NPD.GEN.MUST Null 指针将被取消引用 1 true Pre-9.2 9.2、9.5、11.0、2018.2
NUM.OVERFLOW 可能溢出 3 false 10.1
PORTING.BITFIELDS 在结构中使用了位域 4 false 9.2 9.5
PORTING.BSWAP.MACRO 在不进行字节顺序检查的情况下使用了自定义字节交换宏 4 false 9.2 9.5
PORTING.BYTEORDER.SIZE 对“ntohl”等网络宏使用了不兼容的类型 4 false 9.2 9.5
PORTING.CAST.FLTPNT 将浮点表达式转换为非浮点类型 4 false 9.2 9.5
PORTING.CAST.PTR 并非都为指针或都不为指针类型之间的转换 4 false 9.2 9.5
PORTING.CAST.PTR.FLTPNT 将浮点表达式的指针转换为非浮点类型指针 4 false 9.2 9.5
PORTING.CAST.PTR.SIZE 尝试将表达式转换为可能大小不兼容的类型 4 false 9.2 9.5
PORTING.CAST.SIZE 表达式被转换为可能大小不同的类型 4 false 9.2 9.5
PORTING.CMPSPEC.EFFECTS.ASSIGNMENT 函数参数中的分配 4 false 9.2 9.5、10.3
PORTING.CMPSPEC.TYPE.BOOL 对布尔型的赋值大于 1 字节 4 false 9.2 9.5
PORTING.CMPSPEC.TYPE.LONGLONG 使用“long long” 4 false 9.2 9.5
PORTING.MACRO.NUMTYPE 使用了描述内建数字型的宏 4 false 9.2 9.5
PORTING.OPTS 使用了编译器相关选项 4 false 9.2 9.5
PORTING.PRAGMA.ALIGN #pragma align 的使用情况 4 false 9.2 9.5
PORTING.PRAGMA.PACK #pragma pack 的使用情况 4 false 9.2 9.5
PORTING.SIGNED.CHAR 使用了“char”但没有明确指定符号规范 4 false 9.2 9.5
PORTING.STORAGE.STRUCT 结构中元素的字节位置可能取决于对齐和封装属性。 4 false 9.2 9.5
PORTING.STRUCT.BOOL 结构/类存在布尔型成员 4 false 9.2 9.5
PORTING.UNIONS 封闭结构/封闭类/其他联合中使用了联合 4 false 9.2 9.5
PORTING.UNSIGNEDCHAR.OVERFLOW.FALSE 关系表达式可能始终为 false,具体取决于“char”类型符号规范 4 false 9.2 9.5
PORTING.UNSIGNEDCHAR.OVERFLOW.TRUE 关系表达式可能始终为 true,具体取决于“char”类型符号规范 4 false 9.2 9.5
PORTING.UNSIGNEDCHAR.RELOP 明确有符号/无符号的字符型以及没有符号规范的字符型之间使用了关系运算 4 false 9.2 9.5
PORTING.VAR.EFFECTS 变量在一个表达式中使用了两次,且其中一次会产生副作用 4 false 9.2 9.5
PRECISION.LOSS 出现精度损失 4 false Pre-9.2 9.5
PRECISION.LOSS.CALL 在函数调用期间出现精度损失 4 false Pre-9.2 9.5
RABV.CHECK 在进行边界检查前对索引进行可疑的使用 1 true 11.3 2017
RCA 使用了存在风险的密码算法 2 true 11.0 2017
RCA.HASH.SALT.EMPTY 在 salt 为空的情况下使用单向哈希 2 true 11.1
RETVOID.GEN 非虚函数返回虚值 2 true Pre-9.2
RETVOID.IMPLICIT 隐式 int 函数返回虚值 2 true Pre-9.2
RH.LEAK 资源泄露 2 true Pre-9.2 9.5、11.1
RN.INDEX 在进行负值检查前对索引进行可疑的使用 1 true 9.5
RNPD.CALL 在函数调用中在进行 NULL 检查前对指针进行可疑的取消引用 1 true Pre-9.2
RNPD.DEREF 在进行 NULL 检查前对指针进行可疑的取消引用 1 true Pre-9.2
SEMICOL 可能放错位置的分号 4 false Pre-9.2
SPECTRE.VARIANT1 预测执行的可能利用 3 false 2017.3, 2018, 2018.1*
STRONG.TYPE.ASSIGN 赋值未遵循强类型指定 4 false 9.2
STRONG.TYPE.ASSIGN.ARG 赋值未遵循强类型指定 4 false 9.2
STRONG.TYPE.ASSIGN.CONST 赋值未遵循强类型指定 4 false 9.2
STRONG.TYPE.ASSIGN.INIT 赋值未遵循强类型指定 4 false 9.2
STRONG.TYPE.ASSIGN.RETURN 赋值未遵循强类型指定 4 false 9.2
STRONG.TYPE.ASSIGN.ZERO 赋值未遵循强类型指定 4 false 9.2
STRONG.TYPE.EXTRACT 赋值未遵循强类型指定 4 false 9.2
STRONG.TYPE.JOIN.CMP 与二进制运算符的结合未遵循强类型指定 4 false 9.2
STRONG.TYPE.JOIN.CONST 与二进制运算符的结合未遵循强类型指定 4 false 9.2
STRONG.TYPE.JOIN.EQ 与二进制运算符的结合未遵循强类型指定 4 false 9.2
STRONG.TYPE.JOIN.OTHER 与二进制运算符的结合未遵循强类型指定 4 false 9.2
STRONG.TYPE.JOIN.ZERO 与二进制运算符的结合未遵循强类型指定 4 false 9.2
SV.BANNED.RECOMMENDED.ALLOCA 已禁用的建议的 API:堆栈分配函数 4 false 9.5
SV.BANNED.RECOMMENDED.NUMERIC 已禁用的建议的 API:不安全的数值转换函数 4 false 9.5
SV.BANNED.RECOMMENDED.OEM 已禁用的建议的 API:OEM 字符页面转换函数 4 false 9.5
SV.BANNED.RECOMMENDED.PATH 已禁用的建议的 API:不安全的路径名称操作函数 4 false 9.5
SV.BANNED.RECOMMENDED.SCANF 已禁用的建议的 API:不安全的 scanf 类型函数 4 false 9.5
SV.BANNED.RECOMMENDED.SPRINTF 已禁用的建议的 API:不安全的 sprintf 类型函数 4 false 9.5
SV.BANNED.RECOMMENDED.STRLEN 已禁用的建议的 API:不安全的字符串长度函数 4 false 9.5
SV.BANNED.RECOMMENDED.TOKEN 已禁用的建议的 API:不安全的字符串令牌化函数 4 false 9.5
SV.BANNED.RECOMMENDED.WINDOW 已禁用的建议的 API:不安全的窗口函数 4 false Pre-9.2
SV.BANNED.REQUIRED.CONCAT 已禁用的建议的 API:不安全的字符串串联函数 4 false 9.5
SV.BANNED.REQUIRED.COPY 已禁用的建议的 API:不安全的缓冲区复制函数 4 false 9.5
SV.BANNED.REQUIRED.GETS 已禁用的建议的 API:不安全的流读取函数 4 false Pre-9.2
SV.BANNED.REQUIRED.ISBAD 已禁用的所需的 API:IsBad-type 函数 4 false 9.5
SV.BANNED.REQUIRED.SPRINTF 已禁用的所需的 API:不安全的 sprintf 类型函数 4 false 9.5
SV.BFC.USING_STRUCT 在 struct sockaddr_in 结构的 sin_addr.s_addr 字段中使用 INADDR_ANY 来调用 bind 函数 4 false Pre-9.2
SV.BRM.HKEY_LOCAL_MACHINE HKEY_LOCAL_MACHINE 被用作注册表操作函数的“hkey”参数 4 false Pre-9.2
SV.CODE_INJECTION.SHELL_EXEC 命令注入 shell 执行 3 false Pre-9.2
SV.DLLPRELOAD.NONABSOLUTE.DLL 潜在的 DLL 预加载劫持载体 2 false 9.5
SV.DLLPRELOAD.NONABSOLUTE.EXE 潜在进程注入矢量 2 false 9.5
SV.DLLPRELOAD.SEARCHPATH 不要使用 SearchPath 查找 DLL 2 false 9.5
SV.FIU.PROCESS_VARIANTS 使用危险的进程创建 4 false Pre-9.2 11.3
SV.FMTSTR.GENERIC 格式字符串漏洞 1 false Pre-9.2 11.2
SV.FMT_STR.BAD_SCAN_FORMAT 输入格式说明符错误 2 true Pre-9.2 9.5
SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD 打印函数参数的不兼容类型 2 true Pre-9.2 9.5
SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED 打印函数参数的非预期类型 4 true Pre-9.2 9.5
SV.FMT_STR.PRINT_IMPROP_LENGTH 打印函数调用中的长度修饰符使用不当 2 true Pre-9.2 9.5
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW 打印函数调用中的自变量过少 2 true Pre-9.2 9.5
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY 打印函数调用中的自变量过多 2 true Pre-9.2 9.5
SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD 扫描函数参数的不兼容类型 2 true 10.0 11.3
SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED 扫描函数参数的非预期类型 2 true 10.0
SV.FMT_STR.SCAN_IMPROP_LENGTH 扫描函数调用中的长度修饰符使用不当 2 true Pre-9.2 9.5
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW 扫描函数调用中的自变量过少 2 true Pre-9.2 9.5
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY 扫描函数调用中的自变量过多 2 true Pre-9.2 9.5
SV.FMT_STR.UNKWN_FORMAT 打印函数调用中存在未知格式说明符 3 true Pre-9.2 9.5
SV.FMT_STR.UNKWN_FORMAT.SCAN 扫描函数调用中存在未知格式说明符 3 true Pre-9.2 9.5
SV.INCORRECT_RESOURCE_HANDLING.URH 不安全的资源处理 3 false Pre-9.2
SV.INCORRECT_RESOURCE_HANDLING.WRONG_STATUS 不安全的资源处理 3 false Pre-9.2
SV.LPP.CONST 危险函数使用不安全的宏 3 false 9.5
SV.LPP.VAR 危险函数使用不安全的函数 3 false 9.5
SV.PCC.CONST 在调用 CreateFile 时使用了不安全的(常量)临时文件名 4 false Pre-9.2
SV.PCC.INVALID_TEMP_PATH 在调用 CreateFile 时使用了不安全的临时文件名 4 false Pre-9.2
SV.PCC.MISSING_TEMP_CALLS.MUST 在调用 CreateFile 时缺少安全的临时文件名 4 false Pre-9.2
SV.PCC.MISSING_TEMP_FILENAME 在调用 CreateFile 时缺少临时文件名 4 false Pre-9.2
SV.PCC.MODIFIED_BEFORE_CREATE 在调用 CreateFile 之前修改了临时文件名 4 false Pre-9.2
SV.PIPE.CONST 潜在的管道劫持 3 false 9.5
SV.PIPE.VAR 潜在的管道劫持 3 false 9.5
SV.RVT.RETVAL_NOTTESTED 返回值被忽略 4 false Pre-9.2
SV.SIP.CONST 危险函数使用不安全的宏 3 false 9.6
SV.SIP.VAR 危险函数使用不安全的函数 3 false 9.6
SV.STRBO.BOUND_COPY.OVERFLOW 绑定字符串复制中的缓冲区溢出 1 false 10.0
SV.STRBO.BOUND_COPY.UNTERM 随后字符串运算中可能的缓冲区溢出 2 false 10.0
SV.STRBO.BOUND_SPRINTF 绑定 sprintf 中的缓冲区溢出 1 false Pre-9.2 10.3
SV.STRBO.UNBOUND_COPY 非绑定字符串复制中的缓冲区溢出 1 false Pre-9.2
SV.STRBO.UNBOUND_SPRINTF 非绑定 sprintf 中的缓冲区溢出 1 false Pre-9.2
SV.STR_PAR.UNDESIRED_STRING_PARAMETER 文件路径包含不希望出现的字符串 4 false Pre-9.2
SV.TAINTED.ALLOC_SIZE 在内存分配中使用未经验证的整数 2 true Pre-9.2 10.1、10.2
SV.TAINTED.BINOP 在二进制运算中使用未经验证的整数 3 false 10.3
SV.TAINTED.CALL.BINOP 在二进制运算中使用未经验证的整数 3 false 10.3
SV.TAINTED.CALL.DEREF 取消引用未经验证的指针 3 false 11.2
SV.TAINTED.CALL.INDEX_ACCESS 通过函数调用将未经验证的整数用作数组索引 2 true Pre-9.2 10.1、10.2
SV.TAINTED.CALL.LOOP_BOUND 通过函数调用在循环条件使用未经验证的整数 2 true Pre-9.2 10.1、10.2
SV.TAINTED.DEREF 取消引用未经验证的指针 3 false 11.2
SV.TAINTED.FMTSTR 在格式字符串中使用未经验证的数据 1 true Pre-9.2 10.1
SV.TAINTED.INDEX_ACCESS 将未经验证的整数用作数组索引 1 true Pre-9.2 10.1、10.2、11.1、2017
SV.TAINTED.INJECTION 命令注入 3 true Pre-9.2 10.1
SV.TAINTED.LOOP_BOUND 在循环条件中使用未经验证的整数 2 true Pre-9.2 10.1、10.2
SV.TAINTED.PATH_TRAVERSAL 在路径遍历中使用未经验证的数据 1 true 11.0
SV.TAINTED.SECURITY_DECISION 安全性决策 3 false 10.4
SV.TOCTOU.FILE_ACCESS 文件访问中的时间创建/时间争用条件 4 false Pre-9.2 11.3
SV.UNBOUND_STRING_INPUT.CIN 将 cin 用于无边界字符串输入 1 true 9.5
SV.UNBOUND_STRING_INPUT.FUNC 使用无边界字符串输入 1 true 9.5
SV.USAGERULES.PERMISSIONS 使用权限提升 4 false Pre-9.2 11.3
SV.USAGERULES.PROCESS_VARIANTS 使用危险的进程创建函数 4 false Pre-9.2
SV.USAGERULES.SPOOFING 使用易遭受电子欺骗的函数 4 false Pre-9.2
SV.WEAK_CRYPTO.WEAK_HASH 不安全的哈希函数 4 false Pre-9.2
UFM.DEREF.MIGHT 可能使用了释放内存(访问) 1 true Pre-9.2 9.2、9.5
UFM.DEREF.MUST 通过指针使用了已释放内存 1 true Pre-9.2 9.2、9.5
UFM.FFM.MIGHT 可能使用了释放内存(双重释放) 1 true Pre-9.2 9.2、9.5
UFM.FFM.MUST 释放已释放内存 1 true Pre-9.2 9.2、9.5
UFM.RETURN.MIGHT 可能使用了已释放内存(返回) 2 true Pre-9.2 9.2、9.5
UFM.RETURN.MUST 返回时使用了已释放内存 2 true Pre-9.2 9.2、9.5
UFM.USE.MIGHT 可能使用了释放内存 2 true Pre-9.2 9.2、9.5
UFM.USE.MUST 使用了已释放内存 2 true Pre-9.2 9.2、9.5
UNINIT.CTOR.MIGHT 构造函数中可能存在未初始化的变量 1 true Pre-9.2 9.2、9.5
UNINIT.CTOR.MUST 构造函数中存在未初始化的变量 2 false Pre-9.2 9.2、9.5
UNINIT.HEAP.MIGHT 使用的堆可能未初始化 1 true Pre-9.2 9.2、9.5
UNINIT.HEAP.MUST 使用的堆未初始化 1 true Pre-9.2 9.2、9.5
UNINIT.STACK.ARRAY.MIGHT 数组可能未初始化 1 true Pre-9.2 9.2、9.5
UNINIT.STACK.ARRAY.MUST 数组未初始化 1 true Pre-9.2 9.2、9.5
UNINIT.STACK.ARRAY.PARTIAL.MUST 数组部分未初始化 1 true Pre-9.2 9.2、9.5
UNINIT.STACK.MIGHT 变量可能未初始化 1 true Pre-9.2 9.2、9.5、2018.2
UNINIT.STACK.MUST 变量未初始化 1 true Pre-9.2 9.2、9.5、11.2
UNREACH.GEN 无法访问的代码 3 false Pre-9.2 9.2、9.5、10.1、10.3、10.4、11.2
UNREACH.RETURN 无法访问的返回虚值 3 false Pre-9.2 9.2、9.5、11.2
UNREACH.SIZEOF 体系结构相关的无法访问代码 3 false 10.1
UNUSED.FUNC.GEN 已定义但未使用的函数 4 false 10.1 11.3
UNUSED.FUNC.STL_EMPTY 忽略 STL 对象 empty() 方法的返回值 3 true 2019.3
UNUSED.FUNC.WARN 可能的未使用函数 4 false 10.1 11.3
VA_UNUSED.GEN 赋值后从未使用过值 4 false Pre-9.2 9.5
VA_UNUSED.INIT 值在初始化后从未使用过 4 false Pre-9.2 9.5、11.2
VOIDRET Void 函数返回值 2 true Pre-9.2 9.5

猜你喜欢

转载自blog.csdn.net/qq_18191333/article/details/113399825
今日推荐