此版本包括以下增强功能: 发布日期:2021 年 11 月 15 日 Azure DevOps 和 GitLab 集成我们添加了可帮助您简化 CI 系统工作流程的增强功能。现在,您可以直接在 Azure Pipelines 或 GitLab 中查看 C/C++test 报告的结果。 Azure DevOps 集成我们为 Azure DevOps 添加了 C/C++test 扩展,您可以轻松地将 C/C++test 与 Azure DevOps 管道集成。该扩展提供了一项任务,用于使用 C/C++test 运行分析,并以 Azure DevOps 专用的 SARIF 格式生成 C/C++test 报告。之后,每次管道执行时,分析结果将显示在构建结果中。详细信息请参阅 https://marketplace.visualstudio.com/items?itemName=parasoft.cpptest-azure-devops。 GitLab 集成现在,您可以通过修改您的 GitLab 工作流程来与 GitLab 集成,以使用 C/C++test 运行分析,并以 SAST 格式生成分析报告。这允许您在 GitLab 中查看 C/C++test 报告的代码漏洞结果。详细信息请参阅 https://gitlab.com/parasoft/cpptest-gitlab。 简化代码覆盖率工作流程我们添加了新的选项来帮助您解决使用 C/C++test 收集覆盖率信息时出现的问题。现在,您可以:
详细信息请参阅代码覆盖率故障排查。 编译器支持我们添加了对以下编译器的支持:
我们更改了以下编译器的支持级别:
详细信息请参阅编译器。 IDE 支持我们增加了对 Eclipse 2020-06 (4.16) - 2021-06 (4.20) 版本的支持。 新增和更新的代码分析规则我们新增了静态分析规则来扩展编码标准的覆盖率。有关新增规则和更新规则的列表,请参阅新增规则和更新规则。 新增和更新的测试配置我们添加了以下测试配置:
接受 Parasoft 最终用户许可协议您必须接受 Parasoft 最终用户许可协议(EULA)才能使用 C/C++test。Parasoft EULA 可在 C/C++test 安装目录和 https://www.parasoft.com/license 获取。在 C/C++test 安装期间或首次启动时,会提示您同意 EULA 的条款。 如果您使用的是 C/C++test 的命令行界面,则可以通过在 localsettings 文件中添加以下设置来接受 EULA: 其他变更
弃用和删除的环境支持删除的 IDE 支持现已删除对以下 IDE 的支持:
解决的 Bug 和 FR
|
规则 ID | 标题 |
---|---|
AUTOSAR-A13_5_5-b | 比较运算符应该是有着相同参数类型和 noexcept 的非成员函数 |
CERT_CPP-DCL53-c | 避免语法不明确的函数声明 |
CERT_CPP-ERR56-b | 不要将 'catch' 块留空 |
CODSTA-CPP-107 | 比较运算符应为非成员函数 |
CODSTA-CPP-107_b | 比较运算符应该是有着相同参数类型和 noexcept 的非成员函数 |
FORMAT-48 | 函数声明中的参数名不应该用括号括起来 |
FORMAT-49 | 变量声明中的局部变量名不应该用括号括起来 |
OWASP2021-A1-a | 防止文件名注入 |
OWASP2021-A1-b | 在放弃特权时遵守正确的撤销命令 |
OWASP2021-A1-c | 确保特权放弃成功 |
OWASP2021-A2-a | 在伪随机数生成器中指定适当的种子 |
OWASP2021-A3-a | 避免将未经验证的二进制数据传递给日志方法 |
OWASP2021-A3-b | 防止命令注入 |
OWASP2021-A3-c | 避免在输出控制台打印受污染的数据 |
OWASP2021-A3-d | 防止环境注入 |
OWASP2021-A3-e | 从格式字符串中排除未经净化的用户输入 |
OWASP2021-A3-f | 防止 SQL 注入 |
OWASP2021-A4-a | 避免将敏感数据传递给写日志文件的函数 |
OWASP2021-A5-a | 如果在单个 try-catch 语句或 function-try-block 中为派生类及其部分或全部基类提供了多个处理程序,则处理程序应按最派生类到基类排序 |
OWASP2021-A5-b | 不要将 'catch' 块留空 |
OWASP2021-A5-c | 正确使用 errno 值 |
OWASP2021-A5-d | 在 libxerces-c 中禁用解析 XML 外部实体 (XXE) |
OWASP2021-A7-a | 请勿使用弱加密函数 |
OWASP2021-A8-a | 小心确保 LoadLibrary() 加载正确的库 |
OWASP2021-A9-a | 所有异常都应被重新抛出或用标准记录器记录 |
PB-78 | 对程序员定义的整数类型的格式化 IO 使用 intmax_t 或 uintmax_t |
PB-79 | 避免语法不明确的函数声明 |
类别 ID | 规则 ID |
---|---|
AUTOSAR C++14 编码指南 | AUTOSAR-A0_1_1-a, AUTOSAR-A10_3_2-a, AUTOSAR-A12_1_1-b, AUTOSAR-A12_1_3-a, AUTOSAR-A13_5_5-a, AUTOSAR-A15_4_4-a, AUTOSAR-A20_8_2-a, AUTOSAR-A20_8_3-a, AUTOSAR-A20_8_4-a, AUTOSAR-A27_0_2-a, AUTOSAR-A2_5_2-a, AUTOSAR-A3_8_1-a, AUTOSAR-A5_1_1-a, AUTOSAR-A5_3_2-a, AUTOSAR-A7_1_2-b, AUTOSAR-M0_1_10-a, AUTOSAR-M0_1_4-a, AUTOSAR-M0_3_1-f, AUTOSAR-M0_3_1-g, AUTOSAR-M3_3_2-a |
流分析 | BD-PB-BYTEORD, BD-PB-NP, BD-PB-OVERFNZT, BD-PB-UCMETH, BD-PB-VALPARAM, BD-PB-VOVR, BD-RES-FREE, BD-SECURITY-LOG |
SEI CERT C | CERT_C-ARR38-d, CERT_C-CON31-b, CERT_C-DCL10-a, CERT_C-DCL11-a, CERT_C-DCL11-b, CERT_C-DCL11-c, CERT_C-DCL11-d, CERT_C-DCL11-e, CERT_C-DCL11-f, CERT_C-DCL22-a, CERT_C-ERR33-c, CERT_C-EXP34-a, CERT_C-FIO46-a, CERT_C-FIO47-a, CERT_C-FIO47-b, CERT_C-FIO47-c, CERT_C-FIO47-d, CERT_C-FIO47-e, CERT_C-FIO47-f, CERT_C-INT15-a, CERT_C-MEM00-d, CERT_C-MEM01-a, CERT_C-MEM04-a, CERT_C-MEM07-a, CERT_C-MEM30-a, CERT_C-MSC19-b, CERT_C-POS30-a, CERT_C-POS39-a, CERT_C-POS54-c, CERT_C-STR03-a, CERT_C-STR32-a |
SEI CERT C++ | CERT_CPP-DCL53-a, CERT_CPP-DCL53-b, CERT_CPP-ERR56-a, CERT_CPP-EXP54-a, CERT_CPP-MEM50-a, CERT_CPP-STR50-b, CERT_CPP-STR51-a |
编码规范 | CODSTA-26, CODSTA-48, CODSTA-81 |
Modern C++ 编码规范 | CODSTA-MCPP-05, CODSTA-MCPP-09, CODSTA-MCPP-11_b_cpp11, CODSTA-MCPP-29, CODSTA-MCPP-30 |
常见缺陷列表 | CWE-20-c, CWE-415-a, CWE-416-a, CWE-476-a |
全局静态分析 | GLOBAL-ONEUSEVAR, GLOBAL-UNUSEDFUNC |
High Integrity C++ | HICPP-10_2_1-a, HICPP-12_4_2-a, HICPP-1_2_1-h, HICPP-2_2_1-a, HICPP-5_1_1-a, HICPP-5_2_1-c, HICPP-8_4_1-b |
初始化 | INIT-06, INIT-17 |
联合攻击战斗机 | JSF-012, JSF-051, JSF-071_b, JSF-138_b, JSF-143, JSF-151 |
度量指标 | METRICS-36 |
MISRA C 2004 | MISRA2004-20_3, MISRA2004-8_11 |
MISRA C++ 2008 | MISRA2008-0_1_10_b, MISRA2008-0_1_4, MISRA2008-0_1_6, MISRA2008-0_3_1_b, MISRA2008-0_3_1_e, MISRA2008-2_5_1, MISRA2008-3_3_2 |
MISRA C 2012(遗留) | MISRA2012-DIR-4_13_b, MISRA2012-DIR-4_1_b, MISRA2012-DIR-4_1_e, MISRA2012-RULE-1_3_c, MISRA2012-RULE-21_17_a, MISRA2012-RULE-22_2_a, MISRA2012-RULE-22_6, MISRA2012-RULE-2_2_b, MISRA2012-RULE-8_8, MISRA2012-RULE-9_4 |
MISRA C 2012 | MISRAC2012-DIR_4_1-b, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_13-b, MISRAC2012-RULE_1_3-c, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_22_2-a, MISRAC2012-RULE_22_6-a, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_8_8-a , MISRAC2012-RULE_9_4-a |
命名规范 | NAMING-44 |
最优化 | OPT-26 |
OWASP 10 项最严重的 Web 应用程序安全风险 (2017) | OWASP2017-A1-a, OWASP2019-API3-e |
潜在的缺陷 | PB-45, PB-46, PB-47, PB-48, PB-49, PB-50, PB-62, PB-69 |
有关此版本的信息,请参阅 https://docs.parasoft.com/display/CPPTESTPROEC20212/Updates+in+2021.2。 |