此版本包括以下增强功能:

发布日期:2022 年 6 月 22 日

增强 Automotive Compliance Pack

我们扩展了 Automotive Pack 来帮助您遵循相关汽车标准。

MISRA C:2012 Technical Corrigendum 2 更新

我们更新了 MISRA C 2012 规则集、测试配置和合规性报告,以反映 MISRA C:2012 Technical Corrigendum 2 中的变化。 

增强 Security Compliance Pack

 我们扩展了 Security Pack,帮助您遵循相关安全标准。

新增 DISA ASD STIG 合规性规则集

我们添加了新的 DISA ASD STIG 规则集,以遵循相关 DISA STIG 安全标准。为使用新规则集,已更新现有 DISA-ASD-STIG 测试配置。  

增强静态分析

我们增强了流分析引擎,从而更好地支持 Modern C++ 构造,包括 unique_ptrshared_ptrauto_ptrweak_ptr 等智能指针。针对智能指针语义理解的改进能够精确跟踪资源使用情况,并提高报告任务的质量和准确性。 

平台支持

C/C++test 现在支持 Windows 11。 

编译器支持

我们添加了对以下编译器的支持:

编译器名称编译器标识符
GNU GCC 10.x (x86_64)gcc_10-64
GNU GCC 11.x (x86_64)gcc_11-64
Microsoft Visual C++ 14.3vc_14_3
Microsoft Visual C++ 14.3 (x64)vc_14_3-64
Qualcomm Hexagon Clang 8.4hexagon-clang_8_4
Synopsys Metaware ARC 2020.06ccac_2020_06
Tasking TriCore 4.2vxtc_4_2
Tasking TriCore 6.3vxtc_6_3

新增和更新的代码分析规则

我们添加了新的静态分析规则来扩展编码标准的覆盖范围。有关新增规则和更新规则的列表,请参阅新增规则更新规则

新增和更新的测试配置

我们更新了以下测试配置: 

  • AUTOSAR C++14 Coding Guidelines 
  • CWE Top 25 + On the Cusp 2019 
  • CWE Top 25 2019 
  • DISA-ASD-STIG 
  • Flow Analysis Aggressive 
  • Flow Analysis Fast 
  • Flow Analysis Standard 
  • High Integrity C++ 
  • MISRA C 2004 
  • MISRA C 2012 
  • MISRA C++ 2008 
  • SEI CERT C Guidelines 
  • SEI CERT C Rules 
  • SEI CERT C++ Rules 

命令行界面的更改

  • 我们添加了一个新的命令行标志“-property”,它允许您直接在命令行中指定额外的配置设置。请参阅 cli 选项
  • “-localsettings”命令行标志已重命名为“-settings”。请参阅 cli 选项

许可

此版本需要更新许可证密钥。

升级到 2022.1 可能会导致 Windows 。在向 Parasoft 申请新的许可证之前,请验证您的机器码。有关验证机器码的信息,请参阅在 GUI 中设置本地许可证

详情请联系您的 Parasoft 代表。

其他变更

弃用和删除的支持

删除的 IDE 支持

现已删除对以下 IDE 的支持:

  • Visual Studio 2012
  • Visual Studio 2013

删除的编译器支持

现已删除对以下编译器的支持:

  • Microsoft Visual C++ 9.0
  • Microsoft Visual C++ 9.0 (x64)
  • Microsoft Visual C++ 10.0
  • Microsoft Visual C++ 10.0 (x64)

删除的功能

  • 已删除弃用的抑制视图。如果在 IDE 中“抑制”视图打开时升级 C/C++test,则可能需要在升级后手动关闭该视图。
  • 不再支持将报告发布到团队服务器以及从团队服务器导入报告

弃用的功能

  • 现已弃用以下团队服务器功能: 
    • 在团队服务器上存储测试配置、规则和规则映射 
    • 在 IDE 的图形编辑器中编辑团队服务器测试配置
    • 全局目标管理
    • 在团队服务器上重新分配作者

解决的 Bug 和 FR

Bug/FR ID说明
CPP-36108 [coverage] 为模板函数内部定义的类和 lambda 添加代码覆盖率
CPP-48321 [engine][EDG] 错误:包扩展不使用任何参数包
CPP-48585 [engine][EDG] 插桩错误 "std::enable_if<false, void>" 没有 ASIO 库的成员 "type"
CPP-49194 [static] FORMAT-11 针对引用声明误报
CPP-49198 [static] GLOBAL-ONEUSEVAR (AUTOSAR-M0_1_4-a) 对头文件中 const 变量报告违规
CPP-49658 [ide] 在“C/C++高级设置”中导入不正确的路径时没有验证消息
CPP-49695 [static] CODSTA-119 (MISRA2012-RULE-16_4_b) 在带有注释的代码块后有 break 时误报
CPP-49701 [static] AUTOSAR-A11_3_1-a 误报
CPP-49704 [engine][EDG] 类内字段初始化器的 initializer_range 不正确(使用常量值初始化时?)
CPP-49715 [engine][EDG] 错误:类 "std::__2::enable_if<false, bool>" 没有成员 "type"
CPP-49766 [static] AUTOSAR-A7_1_7-a:误报
CPP-49767 [static] MISRA2004-16_7 在数组的指针元素作为非 const 指针传递时误报
CPP-49768 [engine][EDG] 错误:类型为 "std::pair<DataAccess::Common::Geometry::TCoordScaleNDS::TBaseType, DataAccess::Common::Geometry::TCoordScaleNDS::TBaseType> &"(非 const 限定)的引用无法使用值初始化 
CPP-49773 [rulewizard] 对于在模板类外部定义的静态成员,'Class' 节点的 'Body' 属性无法正常工作
CPP-49777 [compiler] 改进 tiarm 编译器的 --relaxed_ansi 选项处理
CPP-49779 [compiler] 添加对 tiarm_18_2 的 __builtin_addressof 支持
CPP-49808 [engine] cpptestcc 编译错误:标签 â€anonymous__CPTR_0’ 已使用但未定义
CPP-49847 [rulewizard] static_cast 在按位复制初始化的复制省略中被检测为普通的强制类型转换
CPP-49854 [static] 当根据 & 位运算符确保位数时,MISRA2004-12_8 不应进行报告 
CPP-49857 [static] MISRA2004-16_10 (AUTOSAR-M0_3_2-a) 对重载赋值运算符误报
CPP-49867 [static] OPT-41 应在 Windows 系统中检查文件名是否不区分大小写
CPP-49868 [engine][EDG] 内部错误:断言失败: "scope_stk.c", line 10905 in get_enclosing_template_params_and_args
CPP-49889 [engine] 当例程有 VLA 参数时,测试用例数据生成出错
CPP-49908 [docs] 修复 OIDC 设置的文档
CPP-49909 [rulewizard] 初始化聚合体内部的非聚合体时,函数式强制类型转换被检测为 C 风格强制类型转换
CPP-49949 [static] IndexError:列表索引超出 SECURITY-14 范围
CPP-49950 [static] C++Test 输出在第二次运行时不显示错误
CPP-49966 [static] COMMENT-14 在自己的内部过程中出错时失败
CPP-49984 [rulewizard] 错误地检测到由 const 类类型实例化的模板特化函数中的类
CPP-49991 [static] 访问 volatile 对象时,MISRA2004-12_4_a (MISRAC2012-RULE_13_5-a) 不报告违规 
CPP-49993 [ide] 测试用例编辑器中缺少部分断言宏
CPP-49994 [static] AUTOSAR-M0_1_3-a(OPT-02) 无法正确解析 C++17 中的结构化绑定
CPP-50002 [EDG] 错误:操作数类型不兼容 
CPP-50061 [compiler] renrx 和 gcc:优化会更改普通 'char' 类型符号属性的编译器选项的配置
CPP-50062 [static] AUTOSAR-M5_0_4-a 误报
CPP-50087 [ide] 创建新的测试配置会启用某些未选择的指标
CPP-50089 [compiler] 使用 TIC 编译器时,如果项目路径包含空格,LSI 将会失败
CPP-50100 [static] AUTOSAR-A12_1_1-a 误报
CPP-50103 [static] AUTOSAR-M3_4_1-a:误报
CPP-50106 [rulewizard] 模板函数的未命名参数未与代码中的正确行连接
CPP-50107 [static] MISRA2004-14_1_b 在函数中 extern 数组声明后使用 return 语句时误报
CPP-50108 [static] 改进 AUTOSAR-A2-13-1 的映射
CPP-50110 [static] FORMAT-25 由于不支持 sizeof... 运算符而误报
CPP-50111 [ide] 指向符号链接文件时,C/C++test Professional 找不到 IAppFile
CPP-50113 [static] HICPP-5_8_1-a (AUTOSAR-A5_16_1-a) 针对用作单独表达式的条件运算符误报
CPP-50123 [static ] CODSTA-CPP-101 (AUTOSAR-A13_2_3-a) 针对模板转换运算符误报
CPP-50125 [static] EXCEPT-22 在调用具有 @throw 说明的模板函数时误报
CPP-50128 [static] EXCEPT-14 (AUTOSAR-A15_5_3-h) 在 try-catch 代码块中的函数内部捕获异常时误报
CPP-50134 [static] AUTOSAR-A15_4_5-a 误报 
CPP-50139 [static] MISRA2004-14_1_f (AUTOSAR-M0_1_1-e) 在 'catch' 代码块中使用 'return' 语句时误报
CPP-50148 [static] 改进 AUTOSAR-M12-1-1 的映射
CPP-50149 [static] CODSTA-CPP-78 (AUTOSAR-M9_3_3-a) 在修改非 const 函数的 lambda 表达式中捕获的 'this' 时误报
CPP-50168 [engine][EDG] cpptestcc 插桩编译错误:不允许不完整的类型
CPP-50171 [static] 优化 CERT_C-PRE31 的映射
CPP-50181 [coverage] 对于较长的方法名,“覆盖率概要”列不齐,影响报告可读性
CPP-50209 [compiler] VC++ 2017(及更新版本):增加对 /external 选项的支持
CPP-50220 [vscode] 优化在同一行中显示多个违规的抑制(快速修复)
CPP-50234 [static] FORMAT-06 (AUTOSAR-A7_1_7-a) 在语句内部使用多行 C 风格注释时误报
CPP-50235 [static] EXCEPT-08 (AUTOSAR-M15_3_1-a/AUTOSAR-A15_5_3-f) 在调用 constexpr 函数时误报
CPP-50236 [static] MISRA2004-9_2_c (AUTOSAR-M8_5_2-c) 在初始化具有静态 const 变量的结构时误报
CPP-50246 [static] CODSTA-MCPP-04 (AUTOSAR-A4_10_1-b) 在将常量为 '0' 的 'new' 分配给指针时误报
CPP-50255 [engine][EDG] cpptestcc 内部错误:断言失败:gen_paren_or_brace_dynamic_init: bad kind (cp_gen_be.c, line 22147 in gen_paren_or_brace_dynamic_init)
CPP-50260 [static] TEMPL-12 (AUTOSAR-M14_6_1-a) 在从非依赖基类隐式调用函数时误报
CPP-50263 [static] MISRA2004-8_4 内部错误(仅限 zh_CN)
CPP-50272 [coverage] 通过增量构建(GNU/clang 编译器;Ninja/Make 生成器)改进 Cmake 的覆盖率集成
CPP-50281 [static] MISRAC2012-RULE_17_7-a 的不一致行为
CPP-50296 [static] HICPP-18_2_4-a 针对不是双重检查锁定的模式误报
CPP-50312 [engine] 如果使用 cpptesttrace,GNU make 会泄漏文件描述符
CPP-50360 [static] COMMENT-14_b (AUTOSAR-A2_7_3-b) 应忽略 @param 标记注释中的 [in]、[out] 和 [in,out] 
CPP-50361 [static] MISRA2004-14_1_a (HICPP-1_2_1-a) 在 'if' 条件包含依赖于模板类型的枚举常量时误报
CPP-50387 [static] OPT-32 (AUTOSAR-M0_1_8-a) 在函数包含对具有副作用的构造函数的隐式调用时误报
CPP-50397 [static][更改输出消息] CODSTA-178 (MISRAC2012-RULE_5_1-a) - 从输出消息中删除行号
CPP-50398 [RuleWizard] RuleWizard a(b) 代码块与内建函数__builtin_choose_expr() 不匹配
CPP-50419 [static] MISRA2004-5_2_b(MISRA2008-2_10_2_b) 误报不相关的枚举类标识符
CPP-50467 [static] CODSTA-122_a (CERT_C-ERR33-a) 在三元运算符的条件中使用函数调用时误报
CPP-50565 STL-23 (HICPP-17_5_1-a) 在 'remove_if' 函数的结果用作调用 'erase' 的参数时误报
CPP-50586 [EDG] 类模板参数推断时,断言在 "overload.c" 失败
CPP-50695 无法使用 "-f" 编译器选项成功运行静态分析
FA-7833 BD-RES-LEAKS 针对智能指针管理的资源误报
FA-8047 BD-PB-NP 漏报
FA-8531 优化 BD-PB-VOVR 规则的文档
FA-8562 BD-PB-NOTINIT 针对嵌套匿名结构误报
FA-8625 BD-PB-OVERFNZT 由于 memcpy 使第一个参数再次非零终止而误报违规
FA-8696 优化 BD-TRS-DIFCS 规则的文档
FA-8697 BD-RES-LEAKS 漏报
FA-8701 Flow Analysis 对 void* 指向的未知缓冲区的大小使用了不正确的假设
FA-8736 因读取导致的 BD-PB-CC 误报
FA-8739 BD.PB.ARRAY 误报
FA-8774 BD-API-VALPARAM 由于变量的平方值不能 < 0 而误报
FA-8792 BD-PB-VALRANGE 误报
FA-8824 BD.SECURITY.TDALLOC 可能漏报
FA-8839 BD-PB-NP 由于 FA 不理解 shared_ptr 语义而漏报。
FA-8853 BD-PB-CC 由于 Flow Analysis 没有完全考虑 fgets 会改变缓冲区内容而误报
FA-8884 增量运行中缺少 BD-TRS-MLOCK 违规
FA-8901 MISRAC2012-DIR_4_11-a (BD-API-VALPARAM) 误报
FA-8910 在变量仅用于计算常数值时,BD-PB-VOVR 误报


新增规则

规则 ID

标题

APSC_DV-000160-a请勿使用弱加密函数
APSC_DV-000170-a请勿使用弱加密函数
APSC_DV-000480-a防止 SQL 注入
APSC_DV-000500-a在放弃特权时遵守正确的撤销命令
APSC_DV-000650-a不要将应用程序错误导致的潜在敏感信息打印到异常消息中
APSC_DV-001290-a防止 SQL 注入
APSC_DV-001290-b不受信的数据被用作循环边界
APSC_DV-001290-c避免将用户的输入作为参数传递给方法
APSC_DV-001290-d避免使用可能受到 shell 元字符影响的不安全 shell 函数
APSC_DV-001300-a防止 SQL 注入
APSC_DV-001740-a避免将敏感数据传递给写日志文件的函数
APSC_DV-001750-a避免将敏感数据传递给写日志文件的函数
APSC_DV-001850-a避免将敏感数据传递给写日志文件的函数
APSC_DV-001860-a请勿使用弱加密函数
APSC_DV-001995-a使用 fork 和文件描述符时避免竞争条件
APSC_DV-001995-b在检查符号链接是否存在时避免竞争条件
APSC_DV-001995-c避免访问文件的资源竞争
APSC_DV-001995-d在修改位域时使用锁来防止竞争条件
APSC_DV-001995-e不要使用具有不同的锁集的全局变量
APSC_DV-001995-f避免使用对线程不安全的函数
APSC_DV-001995-g不允许使用容易发生竞争的函数
APSC_DV-001995-h避免使用 'vfork()' 函数
APSC_DV-001995-i正确定义信号处理程序
APSC_DV-002000-a确保资源已释放
APSC_DV-002010-a请勿使用弱加密函数
APSC_DV-002290-a不要使用 rand() 函数来生成伪随机数
APSC_DV-002290-b在伪随机数生成器中指定适当的种子
APSC_DV-002290-c不应该使用 'random_shuffle' 标识符
APSC_DV-002290-d避免使用标准 C 库中随机数的函数
APSC_DV-002350-a请勿使用弱加密函数
APSC_DV-002390-a在 libxerces-c 中禁用解析 XML 外部实体 (XXE)
APSC_DV-002390-b不以本机方式处理结构化文本数据
APSC_DV-002390-c不要在不指定可变大小的格式字符串的情况下使用 scanf 和 fscanf 函数
APSC_DV-002390-d不要使用 mbstowcs() 函数
APSC_DV-002400-a从格式字符串中排除未经净化的用户输入
APSC_DV-002400-b使用 'std::atexit()' 或 'std::at_quick_exit()' 注册函数的执行不应异常退出
APSC_DV-002400-c避免使用 'vfork()' 函数
APSC_DV-002400-d避免使用对线程不安全的函数
APSC_DV-002440-a避免将敏感数据传递给写日志文件的函数
APSC_DV-002460-a避免将敏感数据传递给写日志文件的函数
APSC_DV-002470-a避免将敏感数据传递给写日志文件的函数
APSC_DV-002480-a不要将应用程序错误导致的潜在敏感信息打印到异常消息中
APSC_DV-002510-a防止命令注入
APSC_DV-002520-a防止环境注入
APSC_DV-002520-b防止文件名注入
APSC_DV-002520-c防止 SQL 注入
APSC_DV-002520-d禁止使用来自不受信任用户的未经过滤的数据作为格式化参数
APSC_DV-002520-e避免在数组索引中有受污染数据
APSC_DV-002520-f避免污点数据可能出现的整数上溢/下溢
APSC_DV-002520-g避免将未经验证的二进制数据传递给日志方法
APSC_DV-002520-h防止命令注入
APSC_DV-002520-i避免在输出控制台打印受污染的数据
APSC_DV-002520-j从格式字符串中排除未经净化的用户输入
APSC_DV-002520-k不受信的数据被用作循环边界
APSC_DV-002530-a防止环境注入
APSC_DV-002530-b防止文件名注入
APSC_DV-002530-c防止 SQL 注入
APSC_DV-002530-d禁止使用来自不受信任用户的未经过滤的数据作为格式化参数
APSC_DV-002530-e避免在数组索引中有受污染数据
APSC_DV-002530-f避免污点数据可能出现的整数上溢/下溢
APSC_DV-002530-g避免将未经验证的二进制数据传递给日志方法
APSC_DV-002530-h防止命令注入
APSC_DV-002530-i避免在输出控制台打印受污染的数据
APSC_DV-002530-j从格式字符串中排除未经净化的用户输入
APSC_DV-002530-k不受信的数据被用作循环边界
APSC_DV-002540-a防止 SQL 注入
APSC_DV-002550-a防止环境注入
APSC_DV-002550-b防止文件名注入
APSC_DV-002550-c防止 SQL 注入
APSC_DV-002550-d禁止使用来自不受信任用户的未经过滤的数据作为格式化参数
APSC_DV-002550-e避免在数组索引中有受污染数据
APSC_DV-002550-f避免污点数据可能出现的整数上溢/下溢
APSC_DV-002550-g避免将未经验证的二进制数据传递给日志方法
APSC_DV-002550-h防止命令注入
APSC_DV-002550-i避免在输出控制台打印受污染的数据
APSC_DV-002550-j从格式字符串中排除未经净化的用户输入
APSC_DV-002550-k不受信的数据被用作循环边界
APSC_DV-002560-a防止环境注入
APSC_DV-002560-b防止文件名注入
APSC_DV-002560-c防止 SQL 注入
APSC_DV-002560-d禁止使用来自不受信任用户的未经过滤的数据作为格式化参数
APSC_DV-002560-e避免在数组索引中有受污染数据
APSC_DV-002560-f避免污点数据可能出现的整数上溢/下溢
APSC_DV-002560-g避免将未经验证的二进制数据传递给日志方法
APSC_DV-002560-h防止命令注入
APSC_DV-002560-i避免在输出控制台打印受污染的数据
APSC_DV-002560-j从格式字符串中排除未经净化的用户输入
APSC_DV-002560-k不受信的数据被用作循环边界
APSC_DV-002570-a避免将敏感数据传递给写日志文件的函数
APSC_DV-002570-b不要将应用程序错误导致的潜在敏感信息打印到异常消息中
APSC_DV-002590-a避免由于定义不正确的格式限制而导致缓冲区溢出
APSC_DV-002590-b避免由于读取非零终止字符串而导致的溢出
APSC_DV-002590-c避免读取缓冲区时导致的溢出
APSC_DV-002590-d避免写入缓冲区时导致的溢出
APSC_DV-002590-e避免整数溢出
APSC_DV-002590-f防止来自受污染数据的缓冲区溢出
APSC_DV-002590-g避免污点数据可能出现的整数上溢/下溢
APSC_DV-002590-h避免由于定义不正确的格式限制而导致受污染数据的缓冲区溢出
APSC_DV-002590-i避免来自受污染数据的缓冲区读取溢出
APSC_DV-002590-j避免来自受污染数据的缓冲区写入溢出
APSC_DV-002590-k使用路径操作函数时确保输出缓冲区足够大
APSC_DV-003110-a不要硬编码字符串字面量
APSC_DV-003235-a避免将未经验证的二进制数据传递给日志方法
APSC_DV-003235-b避免将敏感数据传递给写日志文件的函数
AUTOSAR-M12_1_1-b不要使用正在销毁的对象的动态类型
BD-PB-MEMOPT避免调用可以由编译器优化的内存设置函数
BD-PB-PATHBUF使用路径操作函数时确保输出缓冲区足够大
BD-SECURITY-SENSFREE释放之前清除敏感数据
BD-SECURITY-TDLOOP在用于循环的控制表达式之前验证可能被污染的数据
CERT_C-MEM03-a释放之前清除敏感数据
CERT_C-MSC06-a避免调用可以由编译器优化的内存设置函数
CODSTA-108_b不应使用指定为由 tgmath.h 提供的设施
CODSTA-224不应将条件运算符用作子表达式
CODSTA-CPP-60_b应仅使用 ISO/IEC 14882:2014 中定义的转义序列
CODSTA-MCPP-55使用 std::call_once 而不是双重检查锁定模式
CWE-119-k使用路径操作函数时确保输出缓冲区足够大
CWE-787-g使用路径操作函数时确保输出缓冲区足够大
MISRA2004-16_8_b除 main() 外,具有非 void 返回类型的函数的所有退出路径都应具有带有表达式的显式 return 语句
MISRA2008-12_1_1_b不要使用正在销毁的对象的动态类型
MISRA2012-RULE-17_4_b除 main() 外,具有非 void 返回类型的函数的所有退出路径都应具有带有表达式的显式 return 语句
MISRA2012-RULE-21_11_b不应使用指定为由 tgmath.h 提供的设施
MISRAC2012-RULE_17_4-b除 main() 外,具有非 void 返回类型的函数的所有退出路径都应具有带有表达式的显式 return 语句
MISRAC2012-RULE_21_11-b不应使用指定为由 tgmath.h 提供的设施
OOP-11_b除了比较运算符的声明外,不得使用友元声明

更新规则

类别 ID

规则 ID

AUTOSAR C++14 编码指南 AUTOSAR-A0_1_1-a, AUTOSAR-A0_4_4-a, AUTOSAR-A11_3_1-a, AUTOSAR-A12_1_1-a, AUTOSAR-A12_8_3-a, AUTOSAR-A13_2_3-a, AUTOSAR-A15_0_2-a, AUTOSAR-A15_1_4-a, AUTOSAR-A15_4_5-a, AUTOSAR-A15_5_3-f, AUTOSAR-A15_5_3-h, AUTOSAR-A16_2_2-a, AUTOSAR-A18_1_1-a, AUTOSAR-A18_9_4-a, AUTOSAR-A23_0_2-a, AUTOSAR-A26_5_2-a, AUTOSAR-A27_0_1-g, AUTOSAR-A27_0_1-h, AUTOSAR-A27_0_2-a, AUTOSAR-A27_0_2-b, AUTOSAR-A2_10_1-b, AUTOSAR-A2_13_1-a, AUTOSAR-A2_7_3-a, AUTOSAR-A3_3_1-a, AUTOSAR-A4_10_1-b, AUTOSAR-A5_16_1-a, AUTOSAR-A5_2_5-a, AUTOSAR-A5_2_5-c, AUTOSAR-A5_3_2-a, AUTOSAR-A5_6_1-a, AUTOSAR-A7_1_7-a, AUTOSAR-A7_6_1-a, AUTOSAR-A8_4_2-a, AUTOSAR-A8_5_0-a, AUTOSAR-M0_1_1-b, AUTOSAR-M0_1_1-e, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_1_3-a, AUTOSAR-M0_1_4-a, AUTOSAR-M0_1_8-a, AUTOSAR-M0_3_1-b, AUTOSAR-M0_3_1-d, AUTOSAR-M0_3_1-e, AUTOSAR-M0_3_1-f, AUTOSAR-M0_3_1-g, AUTOSAR-M0_3_2-a, AUTOSAR-M12_1_1-a, AUTOSAR-M14_6_1-a, AUTOSAR-M15_3_1-a, AUTOSAR-M3_4_1-a, AUTOSAR-M5_0_16-a, AUTOSAR-M5_0_16-b, AUTOSAR-M5_14_1-a, AUTOSAR-M5_8_1-a, AUTOSAR-M7_1_2-b, AUTOSAR-M7_3_1-a, AUTOSAR-M8_5_2-c, AUTOSAR-M9_3_3-a
流分析 BD-API-VALPARAM, BD-CO-ITMOD, BD-CO-ITOUT, BD-MISC-DC, BD-PB-ARRAY, BD-PB-CC, BD-PB-INVRET, BD-PB-NORETURN, BD-PB-NOTINIT, BD-PB-NP, BD-PB-OVERFNZT, BD-PB-OVERFWR, BD-PB-OVERFZT, BD-PB-OVERLAP, BD-PB-PTRARR, BD-PB-SUBSEQ, BD-PB-SUBSEQFRWD, BD-PB-SUBSEQMOVE, BD-PB-VALRANGE, BD-PB-VCTOR, BD-PB-VDTOR, BD-PB-VOVR, BD-PB-ZERO, BD-RES-LEAKS, BD-SECURITY-RAND, BD-SECURITY-TDALLOC, BD-SECURITY-TDCMD, BD-SECURITY-TDCONSOLE, BD-SECURITY-TDENV, BD-SECURITY-TDFNAMES, BD-SECURITY-TDINPUT, BD-SECURITY-TDSQL, BD-TRS-BITLOCK, BD-TRS-DIFCS, BD-TRS-MLOCK
SEI CERT C CERT_C-API01-a, CERT_C-ARR30-a, CERT_C-ARR38-b, CERT_C-ARR38-d, CERT_C-ARR39-a, CERT_C-CON30-a, CERT_C-CON32-a, CERT_C-CON43-a, CERT_C-DCL01-b, CERT_C-DCL13-a, CERT_C-DCL15-a, CERT_C-DCL19-a, CERT_C-DCL22-a, CERT_C-ENV01-c, CERT_C-ENV34-a, CERT_C-ERR33-a, CERT_C-ERR33-c, CERT_C-EXP02-a, CERT_C-EXP08-b, CERT_C-EXP12-a, CERT_C-EXP33-a, CERT_C-EXP34-a, CERT_C-FIO22-a, CERT_C-FIO32-a, CERT_C-FIO37-a, CERT_C-FIO42-a, CERT_C-FLP03-a, CERT_C-FLP32-a, CERT_C-INT10-a, CERT_C-INT31-a, CERT_C-INT31-b, CERT_C-INT31-i, CERT_C-INT31-j, CERT_C-INT31-k, CERT_C-INT33-a, CERT_C-INT36-b, CERT_C-MEM00-e, CERT_C-MEM12-a, CERT_C-MEM31-a, CERT_C-MSC07-b, CERT_C-MSC07-f, CERT_C-MSC12-b, CERT_C-MSC12-f, CERT_C-MSC19-a, CERT_C-MSC19-b, CERT_C-MSC32-d, CERT_C-MSC37-a, CERT_C-POS30-a, CERT_C-POS49-a, CERT_C-POS54-a, CERT_C-POS54-c, CERT_C-STR02-a, CERT_C-STR02-b, CERT_C-STR02-c, CERT_C-STR03-a, CERT_C-STR31-a, CERT_C-STR31-b, CERT_C-STR32-a, CERT_C-WIN00-a, CERT_C-WIN30-a
SEI CERT C++ CERT_CPP-CON52-a, CERT_CPP-CTR50-a, CERT_CPP-CTR51-a, CERT_CPP-ERR50-f, CERT_CPP-ERR50-h, CERT_CPP-ERR55-a, CERT_CPP-ERR57-a, CERT_CPP-ERR58-a, CERT_CPP-EXP53-a, CERT_CPP-EXP63-a, CERT_CPP-FIO51-a, CERT_CPP-MSC51-a, CERT_CPP-MSC52-a, CERT_CPP-MSC53-a, CERT_CPP-OOP50-c, CERT_CPP-OOP50-d, CERT_CPP-STR50-b, CERT_CPP-STR50-c, CERT_CPP-STR51-a, CERT_CPP-STR53-a
编码规范 CODSTA-04, CODSTA-119, CODSTA-122_a, CODSTA-127_b, CODSTA-161_a, CODSTA-161_b, CODSTA-162, CODSTA-163_b, CODSTA-164_a, CODSTA-164_b, CODSTA-221
C++ 编码规范 CODSTA-CPP-101, CODSTA-CPP-36, CODSTA-CPP-60, CODSTA-CPP-78, CODSTA-CPP-82
Modern C++ 编码规范 CODSTA-MCPP-04
注释 COMMENT-14
常见缺陷列表 CWE-119-a, CWE-119-e, CWE-125-a, CWE-20-d, CWE-20-e, CWE-20-f, CWE-20-g, CWE-20-h, CWE-20-i, CWE-22-a, CWE-362-c, CWE-362-e, CWE-426-a, CWE-476-a, CWE-704-e, CWE-770-a, CWE-772-a, CWE-78-a, CWE-787-a, CWE-787-d, CWE-89-a
异常 EXCEPT-08, EXCEPT-14, EXCEPT-22
代码格式 FORMAT-06, FORMAT-11, FORMAT-23, FORMAT-24, FORMAT-25
全局静态分析 GLOBAL-ONEUSEVAR
High Integrity C++ HICPP-12_4_1-b, HICPP-12_4_1-c, HICPP-13_2_2-a, HICPP-17_3_3-a, HICPP-17_5_1-a, HICPP-18_2_2-a, HICPP-1_2_1-b, HICPP-1_2_1-f, HICPP-1_2_1-i, HICPP-2_5_3-a, HICPP-3_1_1-b, HICPP-4_2_2-a, HICPP-5_1_6-d, HICPP-5_2_1-a, HICPP-5_2_1-c, HICPP-5_5_1-a, HICPP-6_3_2-a, HICPP-6_4_1-a, HICPP-8_4_1-a, HICPP-9_1_1-a
联合攻击战斗机 JSF-037, JSF-042, JSF-098, JSF-105, JSF-115, JSF-118, JSF-135_b, JSF-136_b, JSF-137, JSF-143_a, JSF-157, JSF-186_b, JSF-186_f, JSF-207
MISRA C 1998 MISRA-022, MISRA-023, MISRA-038, MISRA-071_a
MISRA C 2004 MISRA2004-12_4_a, MISRA2004-12_8, MISRA2004-13_2, MISRA2004-14_1_b, MISRA2004-14_1_f, MISRA2004-16_10, MISRA2004-16_7, MISRA2004-5_2_b, MISRA2004-8_10, MISRA2004-8_1_a, MISRA2004-9_2_c
MISRA C++ 2008 MISRA2008-0_1_1_b, MISRA2008-0_1_1_f, MISRA2008-0_1_2_aa, MISRA2008-0_1_3_a, MISRA2008-0_1_4, MISRA2008-0_1_6, MISRA2008-0_1_8, MISRA2008-0_3_1_a, MISRA2008-0_3_1_b, MISRA2008-0_3_1_c, MISRA2008-0_3_1_e, MISRA2008-0_3_1_h, MISRA2008-0_3_2, MISRA2008-12_1_1, MISRA2008-12_1_2, MISRA2008-14_6_1, MISRA2008-15_3_1, MISRA2008-15_5_2, MISRA2008-15_5_3_f, MISRA2008-15_5_3_h, MISRA2008-2_10_2_b, MISRA2008-2_13_1, MISRA2008-3_3_1, MISRA2008-3_4_1_a , MISRA2008-5_0_16_a, MISRA2008-5_0_16_b, MISRA2008-5_14_1, MISRA2008-5_8_1, MISRA2008-7_1_2_a, MISRA2008-7_3_1, MISRA2008-8_5_2_c, MISRA2008-9_3_3
MISRA C 2012(遗留) MISRA2012-DIR-4_11, MISRA2012-DIR-4_13_a, MISRA2012-DIR-4_14_e, MISRA2012-DIR-4_14_f, MISRA2012-DIR-4_14_g, MISRA2012-DIR-4_14_j, MISRA2012-DIR-4_14_k, MISRA2012-DIR-4_14_l, MISRA2012-DIR-4_1_a, MISRA2012-DIR-4_1_b, MISRA2012-DIR-4_1_c, MISRA2012-DIR-4_1_e, MISRA2012-DIR-4_1_h, MISRA2012-RULE-10_1_a, MISRA2012-RULE-10_1_b, MISRA2012-RULE-10_2, MISRA2012-RULE-10_3_b, MISRA2012-RULE-10_4_a, MISRA2012-RULE-10_4_b, MISRA2012-RULE-12_1_c, MISRA2012-RULE-12_2, MISRA2012-RULE-13_5, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-14_4, MISRA2012-RULE-16_1_f, MISRA2012-RULE-16_4_b, MISRA2012-RULE-17_7_a, MISRA2012-RULE-18_1_a, MISRA2012-RULE-18_1_c, MISRA2012-RULE-19_1_c, MISRA2012-RULE-1_3_a, MISRA2012-RULE-1_3_b, MISRA2012-RULE-1_3_e, MISRA2012-RULE-21_17_a, MISRA2012-RULE-21_17_b, MISRA2012-RULE-21_20, MISRA2012-RULE-22_1, MISRA2012-RULE-2_1_b, MISRA2012-RULE-2_1_f, MISRA2012-RULE-2_2_b, MISRA2012-RULE-5_3_b, MISRA2012-RULE-8_13_a, MISRA2012-RULE-9_1
MISRA C 2012 MISRAC2012-DIR_4_1-a, MISRAC2012-DIR_4_1-b, MISRAC2012-DIR_4_1-c, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_1-h, MISRAC2012-DIR_4_11-a, MISRAC2012-DIR_4_13-a, MISRAC2012-DIR_4_14-e, MISRAC2012-DIR_4_14-f, MISRAC2012-DIR_4_14-g, MISRAC2012-DIR_4_14-j, MISRAC2012-DIR_4_14-k, MISRAC2012-DIR_4_14-l, MISRAC2012-RULE_10_1-a, MISRAC2012-RULE_10_1-b, MISRAC2012-RULE_10_2-a, MISRAC2012-RULE_10_3-b, MISRAC2012-RULE_10_4-a, MISRAC2012-RULE_10_4-b, MISRAC2012-RULE_12_1-c, MISRAC2012-RULE_12_2-a, MISRAC2012-RULE_13_5-a, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_14_4-a, MISRAC2012-RULE_16_1-f, MISRAC2012-RULE_16_4-b, MISRAC2012-RULE_17_7-a, MISRAC2012-RULE_18_1-a, MISRAC2012-RULE_18_1-c, MISRAC2012-RULE_19_1-c, MISRAC2012-RULE_1_3-a, MISRAC2012-RULE_1_3-b, MISRAC2012-RULE_1_3-e, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_21_17-b, MISRAC2012-RULE_21_20-a, MISRAC2012-RULE_22_1-a, MISRAC2012-RULE_2_1-b, MISRAC2012-RULE_2_1-f, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_5_3-b, MISRAC2012-RULE_8_13-a, MISRAC2012-RULE_9_1-a
命名规范 NAMING-06, NAMING-18
最优化 OPT-01, OPT-02, OPT-32, OPT-41
OWASP Top 10 2017 OWASP2017-A1-b, OWASP2017-A1-c, OWASP2017-A1-d, OWASP2017-A1-e, OWASP2017-A1-f, OWASP2017-A3-a, OWASP2017-A5-a
OWASP Top 10 2019 OWASP2019-API3-b, OWASP2019-API3-e, OWASP2019-API3-g, OWASP2019-API3-k, OWASP2019-API4-a, OWASP2019-API4-b, OWASP2019-API8-a, OWASP2019-API8-b, OWASP2019-API8-c, OWASP2019-API8-d, OWASP2019-API8-e, OWASP2019-API8-f, OWASP2019-API8-h, OWASP2019-API9-e
OWASP Top 10 2021 OWASP2021-A1-a, OWASP2021-A2-a, OWASP2021-A3-b, OWASP2021-A3-c, OWASP2021-A3-d, OWASP2021-A3-e, OWASP2021-A3-f, OWASP2021-A8-a
潜在的缺陷 PB-43
安全性 SECURITY-04, SECURITY-14
STL 最佳实践 STL-23, STL-37
模板 TEMPL-12

删除规则

规则 ID

附注

MISRAC2012-RULE_14_3-a

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_a 使用。

MISRAC2012-RULE_14_3-b

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_b 使用。

MISRAC2012-RULE_14_3-c

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_c 使用。

MISRAC2012-RULE_14_3-d

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_d 使用。

MISRAC2012-RULE_14_3-e

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_j 使用。

MISRAC2012-RULE_14_3-f

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_k 使用。

MISRAC2012-RULE_14_3-g

应改用 MISRAC2012-RULE_14_3-ac。原规则可作为 MISRA2004-13_7_l 使用。

MISRAC2012-RULE_14_3-h

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_m 使用。

MISRAC2012-RULE_14_3-i

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_n 使用。

MISRAC2012-RULE_14_3-j

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_s 使用。

MISRAC2012-RULE_14_3-k

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_t 使用。

MISRAC2012-RULE_14_3-l

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_u 使用。

MISRAC2012-RULE_14_3-m

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_v 使用。

MISRAC2012-RULE_14_3-n

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_w 使用。

MISRAC2012-RULE_14_3-o

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_x 使用。

MISRAC2012-RULE_14_3-p

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_y 使用。

MISRAC2012-RULE_14_3-q

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_z 使用。

MISRAC2012-RULE_14_3-r

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_aa 使用。

MISRAC2012-RULE_14_3-s

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_ab 使用。

MISRAC2012-RULE_14_3-t

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_ac 使用。

MISRAC2012-RULE_14_3-u

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_ad 使用。

MISRAC2012-RULE_14_3-v

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_ae 使用。

MISRAC2012-RULE_14_3-w

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_af 使用。

MISRAC2012-RULE_14_3-x

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_ag 使用。

MISRAC2012-RULE_14_3-y

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_ah 使用。

MISRAC2012-RULE_14_3-z

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_ai 使用。

MISRAC2012-RULE_14_3-aa

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_aj 使用。

MISRAC2012-RULE_14_3-ab

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 MISRA2004-13_7_ak 使用。

MISRAC2012-RULE_14_3-ad

应改用 MISRAC2012-RULE_14_3-ac。原规则作为 BD-PB-SWITCH 使用。

MISRA2012-RULE-14_3_a

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_a 使用。

MISRA2012-RULE-14_3_b

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_b 使用。

MISRA2012-RULE-14_3_c

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_c 使用。

MISRA2012-RULE-14_3_d

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_d 使用。

MISRA2012-RULE-14_3_e

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_j 使用。

MISRA2012-RULE-14_3_f

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_k 使用。

MISRA2012-RULE-14_3_g

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_l 使用。

MISRA2012-RULE-14_3_h

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_m 使用。

MISRA2012-RULE-14_3_i

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_n 使用。

MISRA2012-RULE-14_3_j

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_s 使用。

MISRA2012-RULE-14_3_k

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_t 使用。

MISRA2012-RULE-14_3_l

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_u 使用。

MISRA2012-RULE-14_3_m

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_v 使用。

MISRA2012-RULE-14_3_n

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_w 使用。

MISRA2012-RULE-14_3_o

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_x 使用。

MISRA2012-RULE-14_3_p

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_y 使用。

MISRA2012-RULE-14_3_q

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_z 使用。

MISRA2012-RULE-14_3_r

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_aa 使用。

MISRA2012-RULE-14_3_s

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_ab 使用。

MISRA2012-RULE-14_3_t

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_ac 使用。

MISRA2012-RULE-14_3_u

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_ad 使用。

MISRA2012-RULE-14_3_v

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_ae 使用。

MISRA2012-RULE-14_3_w

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_af 使用。

MISRA2012-RULE-14_3_x

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_ag 使用。

MISRA2012-RULE-14_3_y

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_ah 使用。

MISRA2012-RULE-14_3_z

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_ai 使用。

MISRA2012-RULE-14_3_za

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_aj 使用。

MISRA2012-RULE-14_3_zb

应改用 MISRA2012-RULE-14_3_zc。原规则作为 MISRA2004-13_7_ak 使用。

MISRA2012-RULE-14_3_zd

应改用 MISRA2012-RULE-14_3_zc。原规则作为 BD-PB-SWITCH 使用。

PB-36考虑改用 BD-PB-VCTOR、BD-PB-VDTOR。

我们优化了下列规则中的违规消息:

  • BD-SECURITY-TDALLOC
  • BD-SECURITY-TDCMD
  • BD-SECURITY-TDCONSOLE
  • BD-SECURITY-TDENV
  • BD-SECURITY-TDFNAMES
  • BD-SECURITY-TDINPUT
  • BD-SECURITY-TDLOOP
  • BD-SECURITY-TDSQL

因此,已有的基于 DTP 的抑制和文件内抑制可能不再适用。

  • No labels