检查器代码 | 描述 | 默认严重性 | 默认情况下是否启用? | 已创建 | 已修改 |
---|---|---|---|---|---|
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 |
MISRA-C 2019
最新推荐文章于 2025-02-17 14:26:16 发布