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

发布日期:2024 年 5 月 29 日

升级注意事项

  • 授权 C/C++test 2024.1 需要使用 DTP 或 License Server 2024.1。升级至 C/C++test 2024.1 之前,您必须升级为 DTP 或 License Server 2024.1 才能成功授权该产品。
  • 与 DTP 和 License Server 的连接必须通过 HTTPS 建立。不再支持 HTTP。

增强 Security Compliance Pack

  • Security Pack 已扩展新的 CWE Top 25 2023 和 CWE Top 25 + on the Cusp 2023 测试配置,以帮助您遵循安全标准。
  • 更新 DISA ASD STIG 规则集和 DISA-ASD-STIG 测试配置,以反映 DISA-ASD-STIG 2022-09 标准中的变化。

增强静态分析

  • 增强静态分析引擎,更好地支持 Modern C++ 构造,包括带有初始化器和结构化绑定的 if 语句。这些增强功能实现了更精确的代码执行模拟,并提高了报告任务的准确性。
  • 提高选定 MISRA C++ 2023 规则的准确性。
  • 为选定规则扩展了对规则参数化的支持。
  • 添加新的代码分析规则,增加合规标准的覆盖率。有关新增规则和更新规则的列表,请参阅新增规则更新规则

增强覆盖率分析

增强对报告代码覆盖率的支持。现在,您可以启用忽略在编译时已知结果的分支/判定的报告模式。详细信息,请参阅在编译时已知判定结果时忽略判定/分支点

编译器支持

现已支持以下编译器:

编译器名称编译器标识符
GCC for Tricore 4.9.xtricoregcc_4_9
HighTec Clang C/C++ Compiler 8.1 (aarch32/arm)*hightec-clang_8_1-aarch32
IAR Compiler for ARM v. 9.40xiccarm_9_40
IAR Compiler for ARM v. 9.50xiccarm_9_50
QNX GCC 8.x (ARM64) **qccarm_8-64
QNX GCC 8.x (x86_64) **qcc_8-64

* - 仅用于静态分析。

** - 支持级别已从标准更新为扩展。

请参阅编译器

IDE 支持

增加对 Eclipse 版本 4.21 (2021-09) - 4.31 (2024-03) 的支持。


新增和更新的测试配置

通过添加对以下测试配置的支持,扩展了 Security Compliance Pack:

  • CWE Top 25 2023
  • CWE Top 25 + On the Cusp 2023
  • OWASP API Security Top 10-2023

已使用新规则更新以下测试配置:

  • DISA-ASD-STIG

其他更新

弃用和删除的支持

即将弃用的编译器

在未来的版本中,将不再支持以下编译器:

  • ARM Compiler 5.0
  • ARM Compiler 5.0 for uVision
  • GNU GCC 4.9.x (mips64el)
  • Green Hills Software Compiler for PPC v. 2013.1.x
  • IAR Compiler for MSP430 v. 6.1x
  • Microchip MPLAB C30 Compiler for dsPIC v3.2x
  • National Instruments LabWindows/CVI 2015 Clang C/C++ Compiler v3.3 for Win32
  • Renesas RX C/C++ Compiler 2.5x

已弃用的编译器

已弃用以下编译器的支持,并将在以后的版本中删除:

  • GNU GCC 5.x
  • GNU GCC 5.x (x86_64)
  • GNU GCC 6.x
  • GNU GCC 6.x (x86_64)
  • Green Hills Software Compiler for ARM64 v. 2014.1.x
  • Green Hills Software Compiler for PPC v. 4.2.x
  • Green Hills Software Compiler for PPC v. 5.0.x
  • Green Hills Software Compiler for V850 v. 2014.1.x
  • IAR Compiler for ARM v. 7.4x
  • IAR Compiler for ARM v. 7.8x
  • IAR Compiler for M16C & R8C v. 3.5x
  • Microsoft Visual C++ 14.0
  • Microsoft Visual C++ 14.0 (x64)
  • SH Series C/C++ Compiler V.9.04.xx
  • Vx-toolset for TriCore C/C++ Compiler 6.2
  • Wind River GCC 4.8.x

删除的编译器支持

不再支持以下编译器:

  • Clang C/C++ Compiler v 6.0
  • FR Family Softune C/C++ Compiler V6
  • TI MSP430 C/C++ Compiler GNU GCC 6.x
  • TI TMS320C2000 C/C++ Compiler v16.9

解决的 Bug 和 FR

Bug/FR ID

说明

CPP-36809

[coverage] 在编译时已知判定结果时忽略判定/分支点

CPP-50180

[static] MISRA2004-10_1_a (MISRA2008-5_0_4_a) 针对枚举常量的误报

CPP-51512

[coverage] 文件“parasoft-instrumentation coverage off/on”注释

CPP-52296

[complier] 支持 IAR ARM 9.40(windows,扩展,完整版)

CPP-52872

[static] 优化 AUTOSAR M5-8-1 的映射

CPP-52955

[static] 扩展 MISRA2008 5-8-1 (AUTOSAR M5-8-1) 规则的映射

CPP-54945

[engine] 插桩不编译 - 错误:成员函数模板的重新声明无效

CPP-55003

[static] 优化 MISRA2008-7_5_4 / AUTOSAR-A7_5_2-a 的映射

CPP-55518

[complier] 支持用于 ARM 的 HighTec C 编译器(基于 LLVM 13.x)- 静态分析

CPP-55598

[static] 为 CWE 390 误动作检测错误添加映射

CPP-55599

[static] 为 CWE 398 不良代码质量添加映射

CPP-55734

[static] 对 RapidJSON 项目的 CDD-DUP I 执行解析时挂起

CPP-55746

[static] 优化 HIC++7.1.6 要求的映射

CPP-55821

[complier] 支持 HighTec TriCore 4.9(windows,扩展,完整版)

CPP-56183

[static] CODSTA-14 针对非指针/非引用类型的强制转换误报

CPP-56220

[static] CODSTA-CPP-92(MISRA2008-10_2_1-a,AUTOSAR-M10_2_1)不报告在不同文件中定义的类,或者在继承层次结构中使用相同基类名称的类的违规

CPP-56270

[static] CODSTA-CPP-62 (MISRA2008-4_10_1, AUTOSAR-A4_10_1-a, AUTOSAR-M4_10_1-a) 在 'NULL' 宏展开为非字面值 '0' 时不报告违规

CPP-56272

[engine] 错误:“final”不是函数或静态数据成员

CPP-56284

[static] CODSTA-MCPP-11_a_cpp11 (AUTOSAR-A7_1_2-a) 针对编译器生成的变量误报

CPP-56286

[static] 优化 MISRACPP2023 Rule 6.7.2 的映射

CPP-56434

[static] 拆分 CODSTA-63 规则以(可选地)排除报告在按位运算符中使用的正 const 整数值

CPP-56435

[engine] 在 Android NDK 中使用 _attribute_((overloadable)) 时发生重复定义

CPP-56463

[static] 在 MISRA C++:2023 7.0.1 和 7.0.3 中引入额外的异常,允许丢弃函数返回的值(CODSTA-CPP-211、CODSTA-316)

CPP-56467

[build] cpptesttrace 由于文件路径中包含空格发生错误

CPP-56491

[static] 优化 MISRACPP2023 Rule 16.6.1 的映射

CPP-56502

[static] CODSTA-60 (CERT_C-EXP20-a) 在包含宏的代码行中使用 'TRUE' 时不报告违规

CPP-56507

[static] 针对在模板的 'if constexpr' 中使用的参数更新 OPT-03 (AUTOSAR-A0_1_4-a) 的文档

CPP-56508

[static] INTERNAL-GLOBAL-ONEUSEVAR_1 针对模板报告 python 错误

CPP-56513

[engine] 解析错误:原子约束依赖于其自身

CPP-56566

[static] 优化 MISRACPP2023 Rule 8.2.5 的映射

CPP-56572

[engine] 解析错误:参数包“types_t”被引用但未展开

CPP-56582

[ide] 在 C/C++test Pro 中优化对大工作空间的静态分析

CPP-56583

[engine] 错误:函数“<unnamed>::TraceInternals::GetProcAddress”的多个实例与参数列表匹配

CPP-56584

[engine] 命令行错误:将 /D 与 # 一起使用时,宏定义无效

CPP-56592

[complier] 扩展 QNX GCC 8(x86-64、arm64)的支持

CPP-56601

[engine] 错误:此处不允许引用限定符

CPP-56656

[static] MISRACPP2023-9_5_1-a (CODSTA-315) 针对循环计数器与循环边界类型不匹配误报

CPP-56658

[static] 优化 CWE-190 整数溢出的映射

CPP-56660

[static] 添加 CWE-366 线程内的竞争条件的映射

CPP-56663

[static] OPT-05 (AUTOSAR-M0_1_3-c) 在内部类的函数中使用私有成员时误报

CPP-56665

[engine] 错误:没有重载函数 rapidjson::GenericValue 的实例

CPP-56676

[engine] 对 edgtk mangler 添加新内建类型的支持

CPP-56717

[static] CODSTA-CPP-82 (MISRACPP2023-6_7_2-a) 针对全局 constexpr 变量误报

CPP-56722

[static] MISRA2004-14_1_a (MISRACPP2023-0_0_1-a) 针对带有 'else' 的 'if constexpr' 语句后的代码误报

CPP-56728

[rulewizard] 在 'if constrexpr-else' 构造后错误检测到空语句

CPP-56735

[engine] 为覆盖率插桩时 cpptestcc 崩溃

CPP-56745

[static] 在测试文件的总数中,不要将没有对应源文件的头文件报告为测试文件

CPP-56749

[engine] hexagon_clang 的 target_gnu_version 错误并破坏指定的初始化器

CPP-56783

[static] MISRACPP2023-9_5_1-a:优化违规消息

CPP-56784

[static] INIT-19 (MISRACPP2023-15_1_4-a) 针对默认复制和移动构造函数误报

CPP-56785

[static] MISRACPP2023-6_7_2-a 针对全局 constexpr 变量误报

CPP-56786

[static] FORMAT-48 (MISRACPP2023-6_0_1-b) 针对 noexcept 中使用的参数误报

CPP-56788

[static] MISRACPP2023-16_6_1-a 针对不对称的运算符 << 误报违规

CPP-56789

[static] MISRACPP2023-5_10_1-a 针对嵌套“posix”命名空间误报

CPP-56801

[static] 修改 BD-PB-VOVR 内建克隆的“报告变量声明 > 包括未使用的未初始化原始值和指针”参数的默认值

CPP-56804

[engine] 将 edg.microsoft_version 更新为 1939 以适配 vc_14_3 编译器

CPP-56911

[engine] C/C++test 无法识别使用 std::tuple 的函数中的桩函数

CPP-56918

[build] cpptest_bdf.bzl 有两个编码错误

CPP-56924

[engine] 使用 IAR Compiler 9.10 初始化柔性数组成员时出现解析错误

CPP-56925

[engine] 错误:偏特化的模板参数列表中包含一个非类型参数,该参数的类型依赖于模板参数

CPP-57059

[engine] 类模板与模板模板参数不兼容

CPP-57360

[engine] 支持 Clang 10 及更高版本中的通用模板模板参数

CPP-57372

[engine] 程序在以下位置接收信号 11:栈追踪: 0# 0x00007FC1B9C81090 in /lib/x86_64-linux-gnu/libc.so.6

FA-9453

C 标准库 Juliet/CWE-401 中的 realloc 函数建模不正确

FA-9689

BD-PB-VOVR 抛出 java.lang.OutOfMemoryError

FA-9692

BD-PB-ARRAY(MISRAC2012-DIR_4_1-a) - 误报

FA-9713

BD-PB-OVERFFMT 针对 '*' 字符串精度误报

FA-9736

为联合体成员存储的值不正确

FA-9787

BD-PB-OVERFNZT 误报

FA-9795

BD-PB-NOTINIT 误报

FA-9841

BD-PB-ARRAY 误报

FA-9842

BD-PB-CC 误报

FA-9847

使用 sizeof byte != 8 的编译器时,增量分析结果可能不正确

FA-9852

BD-PB-ARRAY 不一致的行为

FA-9856

BD-PB-NOTINIT 在通过引用在被调用函数中初始化数组时误报

FA-9866

可能的 MISRA 误报(BD-API-STRSIZE、BD-PB-OVERFRD)

FA-9883

BD-PB-ARRAY 针对嵌套结构报告违规

规则更新

新增规则

规则 ID

标题

APSC_DV-000060-a

使用安全的临时文件名称函数

APSC_DV-000060-b

在调用 'mkstemp' 之前调用 'umask'

APSC_DV-000510-a

在调用 'mkstemp' 之前调用 'umask'

APSC_DV-000510-b

如果调用 'chroot',请调用 'chdir'

APSC_DV-001350-a

请勿使用弱加密函数

APSC_DV-001360-a

请勿使用弱加密函数

APSC_DV-001370-a

出于安全考虑,不应该使用标准随机数生成器来生成随机性

APSC_DV-001370-b

请勿使用弱加密函数

APSC_DV-002020-a

出于安全考虑,不应该使用标准随机数生成器来生成随机性

APSC_DV-002020-b

请勿使用弱加密函数

APSC_DV-002030-a

出于安全考虑,不应该使用标准随机数生成器来生成随机性

APSC_DV-002030-b

请勿使用弱加密函数

APSC_DV-002040-a

出于安全考虑,不应该使用标准随机数生成器来生成随机性

APSC_DV-002040-b

请勿使用弱加密函数

APSC_DV-002050-a

出于安全考虑,不应该使用标准随机数生成器来生成随机性

APSC_DV-002050-b

不应使用随机数生成器函数 'rand()' 和 'srand()'

APSC_DV-002050-c

在伪随机数生成器中指定适当的种子

APSC_DV-002380-a

不应将指向结构体的指针传递给可将数据复制到用户空间的函数

APSC_DV-002485-a

不要硬编码字符串字面量

APSC_DV-002485-b

限制使用系统属性 (环境变量)

APSC_DV-002580-a

避免将敏感数据传递给写日志文件的函数

APSC_DV-002580-b

不要将应用程序错误导致的潜在敏感信息打印到异常消息中

APSC_DV-003100-a

请勿使用弱加密函数

APSC_DV-003120-a

避免将敏感数据传递给写日志文件的函数

APSC_DV-003120-b

不要将应用程序错误导致的潜在敏感信息打印到异常消息中

APSC_DV-003120-c

不应将指向结构体的指针传递给可将数据复制到用户空间的函数

APSC_DV-003140-a

请勿使用弱加密函数

APSC_DV-003235-c

如果函数返回错误信息,则应测试该错误信息

APSC_DV-003235-d

如果在单个 try-catch 语句或 function-try-block 中为派生类及其部分或全部基类提供了多个处理程序,则处理程序应按最派生类到基类排序

APSC_DV-003280-a

不要硬编码字符串字面量

APSC_DV-003320-a

避免使用 'vfork()' 函数

APSC_DV-003320-b

避免使用对线程不安全的函数

APSC_DV-003320-c

在使用潜在可能受污染的数据确定内存分配大小之前对其进行验证

APSC_DV-003320-d

在用于循环的控制表达式之前验证可能被污染的数据

AUTOSAR-A12_8_5-b

用户提供的移动赋值运算符应处理自赋值

AUTOSAR-A15_5_2-d

不应使用 'terminate' 函数

AUTOSAR-A3_1_1-b

不应在头文件中声明具有内部链接的函数和非 const 对象

AUTOSAR-M5_0_21-b

位运算符不得使用正整数字面量作为操作数

AUTOSAR-M5_8_1-b

移位运算符的右操作数应介于零和一之间,小于左操作数的基本类型或基础类型的位宽

BD-SECURITY-TDINTOVERF

避免污点数据可能出现的整数上溢/下溢

CERT_C-INT13-b

移位运算符的操作数应为 unsigned 类型

CERT_C-INT16-b

位运算符不得使用正整数字面量作为操作数

CODSTA-244

除了调用值为 SIG_IGN 的 'signal()' 函数外,不得使用 <signal.h> 的信号处理功能

CODSTA-63_a

位运算符不得使用正整数字面量作为操作数

CODSTA-CPP-20_b

对称运算符只能作为非成员函数实现

CODSTA-CPP-213

仅将 'noexcept' 函数传递给无法处理异常的函数

CODSTA-MCPP-62

由标准整数类型常量表达式初始化的变量,不应使用 'auto' 说明符定义

CWE-125-e

避免在数组索引中有受污染数据

CWE-190-j

避免在整数类型之间转换时的数据丢失

CWE-190-k

避免污点数据可能出现的整数上溢/下溢

CWE-366-a

线程之间不应存在数据争用

CWE-390-a

不应使用空的 'catch' 块

CWE-390-b

避免使用空体的 'if' 语句

CWE-787-h

避免在数组索引中有受污染数据

HICPP-5_6_1-b

位运算符不得使用正整数字面量作为操作数

JSF-039_b

不应在头文件中声明具有内部链接的函数和非 const 对象

MISRA2008-3_1_1_b

在不违反一个定义规则的情况下,可以在多个翻译单元中包含任何头文件

MISRA2008-5_0_21_b

位运算符不得使用正整数字面量作为操作数

MISRA2008-5_8_1_b

常量表达式移位运算符的右操作数应介于 0 和 1 之间,小于左操作数基本类型的位宽

MISRACPP2023-15_8_1-b

用户提供的移动赋值运算符应处理自赋值

MISRACPP2023-18_4_1-c

仅将 'noexcept' 函数传递给无法处理异常的函数

MISRACPP2023-18_5_2-d

不应使用 'terminate' 函数

MISRACPP2023-7_11_2-b

数组类型的对象不应作为可变参数传递给函数

OOP-34_b

用户提供的移动赋值运算符应处理自赋值

OPT-49

不应使用 null 语句

OPT-50

不应使用空的复合语句

OPT-51

避免使用空体的 'if' 语句

OWASP2023-API10-a

避免在数组索引中有受污染数据

OWASP2023-API10-b

避免污点数据可能出现的整数上溢/下溢

OWASP2023-API10-c

避免将未经验证的二进制数据传递给日志方法

OWASP2023-API10-d

防止命令注入

OWASP2023-API10-e

避免在输出控制台打印受污染的数据

OWASP2023-API10-f

防止环境注入

OWASP2023-API10-g

从格式字符串中排除未经净化的用户输入

OWASP2023-API10-h

防止 SQL 注入

OWASP2023-API10-i

防止文件名注入

OWASP2023-API10-j

不受信的数据被用作循环边界

OWASP2023-API2-a

请勿使用弱加密函数

OWASP2023-API3-a

释放之前清除敏感数据

OWASP2023-API3-b

避免将敏感数据传递给写日志文件的函数

OWASP2023-API3-c

不要将应用程序错误导致的潜在敏感信息打印到异常消息中

OWASP2023-API4-a

在使用潜在可能受污染的数据确定内存分配大小之前对其进行验证

OWASP2023-API4-b

在用于循环的控制表达式之前验证可能被污染的数据

OWASP2023-API4-c

不要在超过已定义的限制的栈上创建变量

OWASP2023-API4-d

确保资源已释放

OWASP2023-API8-a

如果在单个 try-catch 语句或 function-try-block 中为派生类及其部分或全部基类提供了多个处理程序,则处理程序应按最派生类到基类排序

OWASP2023-API8-b

不应使用空的 'catch' 块

OWASP2023-API8-c

正确使用 errno 值

OWASP2023-API9-a

应该注释说明所有汇编程序的使用

OWASP2023-API9-b

应该在头文件中声明具有外部链接的对象或函数

OWASP2023-API9-c

使用 #pragma 指令必须进行注释并说明

OWASP2023-API9-d

在函数定义之前的注释中记录函数

PB-41_c

数组类型的对象不应作为可变参数传递给函数

PB-75_d

不应使用 'terminate' 函数

PFO-01_b

不应在头文件中声明具有内部链接的函数和非 const 对象

PORT-01_b

'L' 的小写形式不得用作字面量后缀的第一个字符

TEMPL-07_b

模板构造函数不得参与封闭类类型的单个参数的重载解析

更新规则

类别 ID

规则 ID

AUTOSAR C++14 编码指南

AUTOSAR-A0_1_1-a, AUTOSAR-A0_4_4-a, AUTOSAR-A12_4_1-a, AUTOSAR-A12_8_5-a, AUTOSAR-A14_5_1-a, AUTOSAR-A15_0_2-a, AUTOSAR-A15_1_4-a, AUTOSAR-A15_3_3-a, AUTOSAR-A15_5_2-b, AUTOSAR-A15_5_2-c, AUTOSAR-A15_5_3-d, AUTOSAR-A15_5_3-e, AUTOSAR-A18_0_2-a, AUTOSAR-A27_0_1-g, AUTOSAR-A27_0_1-h, AUTOSAR-A27_0_2-a, AUTOSAR-A3_1_1-a, AUTOSAR-A3_1_4-a, AUTOSAR-A3_3_1-b, AUTOSAR-A4_10_1-a, AUTOSAR-A5_10_1-a, AUTOSAR-A5_2_4-a, AUTOSAR-A5_2_5-a, AUTOSAR-A6_6_1-a, AUTOSAR-A7_1_2-a, AUTOSAR-A7_1_2-b, AUTOSAR-A7_5_2-a, AUTOSAR-A8_5_0-a, AUTOSAR-M0_1_1-c, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_1_3-c, AUTOSAR-M0_1_4-a, AUTOSAR-M0_3_1-d, AUTOSAR-M0_3_1-g, AUTOSAR-M0_3_1-h, AUTOSAR-M0_3_1-i, AUTOSAR-M10_2_1-a, AUTOSAR-M15_1_3-a, AUTOSAR-M16_0_7-a, AUTOSAR-M18_0_3-a, AUTOSAR-M18_0_3-b, AUTOSAR-M18_0_3-c, AUTOSAR-M18_7_1-a, AUTOSAR-M4_10_1-a, AUTOSAR-M5_0_16-a, AUTOSAR-M5_0_21-a, AUTOSAR-M5_18_1-a, AUTOSAR-M5_2_12-a, AUTOSAR-M5_8_1-a, AUTOSAR-M6_6_2-a, AUTOSAR-M7_3_1-a

C++ 编码规范

CODSTA-CPP-09, CODSTA-CPP-211, CODSTA-CPP-212, CODSTA-CPP-36, CODSTA-CPP-62, CODSTA-CPP-66, CODSTA-CPP-82, CODSTA-CPP-92, CODSTA-CPP-95_b

Modern C++ 编码规范

CODSTA-MCPP-11_a_cpp11, CODSTA-MCPP-11_b_cpp11, CODSTA-MCPP-26

编码规范

CODSTA-110, CODSTA-125, CODSTA-14, CODSTA-301, CODSTA-302, CODSTA-305, CODSTA-313, CODSTA-315, CODSTA-316, CODSTA-60, CODSTA-63, CODSTA-77

常见缺陷列表

CWE-119-a, CWE-119-c, CWE-119-d, CWE-125-a, CWE-125-c, CWE-20-b, CWE-20-d, CWE-20-e, CWE-20-f, CWE-20-g, CWE-20-h, CWE-20-i, CWE-22-a, CWE-401-a, CWE-668-a, CWE-704-c, CWE-77-a, CWE-770-a, CWE-772-a, CWE-78-a, CWE-787-a, CWE-787-c, CWE-89-a

DISA ASD STIG

APSC_DV-000480-a, APSC_DV-001290-a, APSC_DV-001300-a, APSC_DV-002000-a, APSC_DV-002400-a, APSC_DV-002510-a, APSC_DV-002520-a, APSC_DV-002520-b, APSC_DV-002520-c, APSC_DV-002520-f, APSC_DV-002520-h, APSC_DV-002520-i, APSC_DV-002520-j, APSC_DV-002530-a, APSC_DV-002530-b, APSC_DV-002530-c, APSC_DV-002530-f, APSC_DV-002530-h, APSC_DV-002530-i, APSC_DV-002530-j, APSC_DV-002540-a, APSC_DV-002550-a, APSC_DV-002550-b, APSC_DV-002550-c, APSC_DV-002550-f, APSC_DV-002550-h, APSC_DV-002550-i, APSC_DV-002550-j, APSC_DV-002560-a, APSC_DV-002560-b, APSC_DV-002560-c, APSC_DV-002560-f, APSC_DV-002560-h, APSC_DV-002560-i, APSC_DV-002560-j, APSC_DV-002590-a, APSC_DV-002590-b, APSC_DV-002590-c, APSC_DV-002590-g, APSC_DV-003235-a, APSC_DV-003235-b

异常

EXCEPT-06, EXCEPT-07, EXCEPT-25

流分析

BD-API-BADPARAM, BD-API-VALPARAM, BD-CO-ITINVCOMP, BD-PB-ARRAY, BD-PB-BADSHIFT, BD-PB-CC, BD-PB-MCCSTR, BD-PB-NOTINIT, BD-PB-OVERFFMT, BD-PB-OVERFNZT, BD-PB-OVERFRD, BD-PB-UCMETH, BD-PB-VOVR, BD-RES-LEAKS, BD-SECURITY-TDALLOC, BD-SECURITY-TDCMD, BD-SECURITY-TDCONSOLE, BD-SECURITY-TDENV, BD-SECURITY-TDFNAMES, BD-SECURITY-TDINPUT, BD-SECURITY-TDLOOP, BD-SECURITY-TDSQL, BD-TRS-THRDR

代码格式

FORMAT-48

全局静态分析

GLOBAL-ONEUSEVAR

High Integrity C++

HICPP-15_3_2-b, HICPP-1_2_1-a, HICPP-1_2_1-h, HICPP-1_2_1-i, HICPP-4_1_1-a, HICPP-4_2_2-f, HICPP-5_1_2-i, HICPP-5_2_1-a, HICPP-5_4_1-b, HICPP-5_6_1-a, HICPP-5_7_2-a, HICPP-6_3_1-b, HICPP-8_4_1-a

初始化

INIT-101, INIT-19

联合攻击战斗机

JSF-021_b, JSF-023, JSF-024, JSF-024_b, JSF-024_d, JSF-039_a, JSF-081, JSF-097_d, JSF-098, JSF-164, JSF-168_b, JSF-183_b, JSF-185, JSF-186_a, JSF-189, JSF-207

MISRA C 2004

MISRA2004-10_1_g, MISRA2004-12_10, MISRA2004-14_1_a, MISRA2004-14_4, MISRA2004-19_11_b, MISRA2004-20_10, MISRA2004-20_11, MISRA2004-20_11_b, MISRA2004-20_11_d, MISRA2004-20_8_b, MISRA2004-8_12

MISRA C 2012(遗留)

MISRA2012-DIR-4_11, MISRA2012-DIR-4_13_a, MISRA2012-DIR-4_14_b, 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_d, MISRA2012-DIR-4_1_e, MISRA2012-DIR-4_1_g, MISRA2012-DIR-5_1_c, MISRA2012-RULE-11_2, MISRA2012-RULE-11_8, MISRA2012-RULE-12_2, MISRA2012-RULE-12_2_b, MISRA2012-RULE-12_3, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-15_1, MISRA2012-RULE-15_2, MISRA2012-RULE-18_1_a, MISRA2012-RULE-1_3_b, MISRA2012-RULE-1_3_d, MISRA2012-RULE-20_9_b, MISRA2012-RULE-21_14, MISRA2012-RULE-21_17_a, MISRA2012-RULE-21_21, MISRA2012-RULE-21_5_b, MISRA2012-RULE-21_6, MISRA2012-RULE-21_7, MISRA2012-RULE-21_8, MISRA2012-RULE-21_8_b, MISRA2012-RULE-21_8_c, MISRA2012-RULE-22_1, MISRA2012-RULE-2_1_a, MISRA2012-RULE-2_1_h, MISRA2012-RULE-2_2_b, MISRA2012-RULE-8_11, MISRA2012-RULE-8_12, MISRA2012-RULE-9_1

MISRA C 2023 (MISRA C 2012)

MISRAC2012-DIR_4_1-a, MISRAC2012-DIR_4_1-d, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_1-g, MISRAC2012-DIR_4_11-a, MISRAC2012-DIR_4_13-a, MISRAC2012-DIR_4_14-b, 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-DIR_5_1-c, MISRAC2012-RULE_11_2-a, MISRAC2012-RULE_11_8-a, MISRAC2012-RULE_12_2-a, MISRAC2012-RULE_12_2-b, MISRAC2012-RULE_12_3-a, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_15_1-a, MISRAC2012-RULE_15_2-a, MISRAC2012-RULE_18_1-a, MISRAC2012-RULE_1_3-b, MISRAC2012-RULE_1_3-d, MISRAC2012-RULE_20_9-b, MISRAC2012-RULE_21_14-a, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_21_21-a, MISRAC2012-RULE_21_5-b, MISRAC2012-RULE_21_6-a, MISRAC2012-RULE_21_7-a, MISRAC2012-RULE_21_8-a, MISRAC2012-RULE_21_8-b, MISRAC2012-RULE_21_8-c, MISRAC2012-RULE_22_1-a, MISRAC2012-RULE_2_1-a, MISRAC2012-RULE_2_1-h, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_8_11-a, MISRAC2012-RULE_8_12-a, MISRAC2012-RULE_9_1-a

MISRA C++ 2008

MISRA2008-0_1_1_a, MISRA2008-0_1_2_aa, MISRA2008-0_1_3_c, MISRA2008-0_1_4, MISRA2008-0_1_6, MISRA2008-0_3_1_a, MISRA2008-0_3_1_d, MISRA2008-0_3_1_e, MISRA2008-0_3_1_g, MISRA2008-10_2_1, MISRA2008-15_1_3, MISRA2008-15_3_2, MISRA2008-15_5_3_d, MISRA2008-15_5_3_e, MISRA2008-16_0_7_b, MISRA2008-18_0_2, MISRA2008-18_0_3, MISRA2008-18_0_3_b, MISRA2008-18_0_3_d, MISRA2008-18_7_1_b, MISRA2008-3_1_1, MISRA2008-3_1_3, MISRA2008-4_10_1, MISRA2008-5_0_16_a, MISRA2008-5_0_21, MISRA2008-5_18_1, MISRA2008-5_2_12, MISRA2008-5_2_4, MISRA2008-5_8_1, MISRA2008-6_6_2, MISRA2008-7_3_1, MISRA2008-7_5_4

MISRA C++ 2023

MISRACPP2023-0_0_1-a, MISRACPP2023-0_0_2-a, MISRACPP2023-0_1_1-a, MISRACPP2023-0_2_4-a, MISRACPP2023-0_3_2-a, MISRACPP2023-10_2_3-a, MISRACPP2023-11_6_1-a, MISRACPP2023-11_6_2-a, MISRACPP2023-11_6_3-a, MISRACPP2023-12_2_2-b, MISRACPP2023-13_3_4-a, MISRACPP2023-15_1_4-a, MISRACPP2023-15_8_1-a, MISRACPP2023-16_6_1-a, MISRACPP2023-18_1_2-a, MISRACPP2023-18_3_1-a, MISRACPP2023-18_5_2-a, MISRACPP2023-18_5_2-b, MISRACPP2023-18_5_2-c, MISRACPP2023-19_1_3-a, MISRACPP2023-21_10_3-a, MISRACPP2023-21_2_1-a, MISRACPP2023-21_2_3-a, MISRACPP2023-30_0_1-b, MISRACPP2023-4_1_3-a, MISRACPP2023-5_10_1-a, MISRACPP2023-5_13_5-a, MISRACPP2023-6_0_1-b, MISRACPP2023-6_0_2-a, MISRACPP2023-6_0_3-a, MISRACPP2023-6_2_4-a, MISRACPP2023-6_7_2-a, MISRACPP2023-7_0_1-a, MISRACPP2023-7_0_2-a, MISRACPP2023-7_0_3-a, MISRACPP2023-7_11_2-a, MISRACPP2023-8_19_1-a, MISRACPP2023-8_2_2-a, MISRACPP2023-8_2_3-a, MISRACPP2023-8_2_5-a, MISRACPP2023-8_7_1-a, MISRACPP2023-8_7_1-c, MISRACPP2023-8_7_1-e, MISRACPP2023-9_5_1-a, MISRACPP2023-9_6_1-a, MISRACPP2023-9_6_3-a

面向对象

OOP-31, OOP-34

最优化

OPT-05, OPT-22

OWASP API 10 项安全风险 (2019)

OWASP2019-API3-b, OWASP2019-API3-d, OWASP2019-API3-e, OWASP2019-API3-f, OWASP2019-API4-a, OWASP2019-API4-b, OWASP2019-API7-c, OWASP2019-API8-a, OWASP2019-API8-b, OWASP2019-API8-c, OWASP2019-API8-d, OWASP2019-API8-e, OWASP2019-API8-f

OWASP Top 10 (2017)

OWASP2017-A1-b, OWASP2017-A1-c, OWASP2017-A1-d, OWASP2017-A1-e, OWASP2017-A1-f, OWASP2017-A5-a, OWASP2017-A6-b

OWASP Top 10 (2021)

OWASP2021-A1-a, OWASP2021-A3-b, OWASP2021-A3-c, OWASP2021-A3-d, OWASP2021-A3-e, OWASP2021-A3-f, OWASP2021-A5-b

物理文件组织

PFO-01

潜在的缺陷

PB-41, PB-41_b, PB-58, PB-75, PB-75_b, PB-75_c

安全性

SECURITY-48, SECURITY-48_b

SEI CERT C++

CERT_CPP-CTR53-b, CERT_CPP-CTR54-a, CERT_CPP-DCL53-a, CERT_CPP-ERR50-d, CERT_CPP-ERR50-e, CERT_CPP-ERR50-l, CERT_CPP-ERR50-n, CERT_CPP-ERR56-b, CERT_CPP-ERR57-a, CERT_CPP-ERR62-a, CERT_CPP-EXP53-a, CERT_CPP-EXP57-b, CERT_CPP-FIO51-a, CERT_CPP-OOP54-a, CERT_CPP-STR50-b

SEI CERT C

CERT_C-ARR30-a, CERT_C-ARR38-a, CERT_C-ARR38-c, CERT_C-ARR38-d, CERT_C-ARR39-a, CERT_C-CON30-a, CERT_C-CON37-a, CERT_C-DCL16-a, CERT_C-DCL22-a, CERT_C-ENV33-a, CERT_C-ERR02-a, CERT_C-ERR04-a, CERT_C-ERR04-b, CERT_C-ERR04-c, CERT_C-ERR05-a, CERT_C-ERR05-b, CERT_C-ERR05-c, CERT_C-ERR07-a, CERT_C-ERR34-a, CERT_C-EXP08-b, CERT_C-EXP20-a, CERT_C-EXP33-a, CERT_C-FIO22-a, CERT_C-FIO32-a, CERT_C-FIO37-a, CERT_C-FIO42-a, CERT_C-FLP32-a, CERT_C-INT04-a, CERT_C-INT13-a, CERT_C-INT16-a, CERT_C-INT34-a, CERT_C-MEM00-e, CERT_C-MEM12-a, CERT_C-MEM31-a, CERT_C-MSC07-a, CERT_C-MSC07-i, CERT_C-MSC12-a, CERT_C-MSC12-i, CERT_C-MSC12-j, CERT_C-MSC19-a, CERT_C-MSC24-a, CERT_C-POS30-a, CERT_C-SIG00-a, CERT_C-SIG01-a, CERT_C-SIG02-a, CERT_C-STR02-a, CERT_C-STR02-b, CERT_C-STR02-c, CERT_C-STR03-a, CERT_C-STR31-a, CERT_C-STR32-a, CERT_C-WIN30-a

删除规则

规则 ID

注意

AUTOSAR-A18_0_2-b

从 AUTOSAR C++ 14 配置中删除。对于其他配置,可以使用 MISRA2004-20_10 作为替代。

AUTOSAR-A2_5_1-b

从 AUTOSAR C++ 14 配置中删除。对于其他配置,可以使用 MISRA2004-4_2 作为替代。

AUTOSAR-A9_5_1-b

从 AUTOSAR C++ 14 配置中删除。对于其他配置,可以使用 MISRA2004-18_4 作为替代。

AUTOSAR-M0_3_1-j

从 AUTOSAR C++ 14 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。

BD-PB-DEREF

可以使用 BD-PB-CC 作为替代。

BD-PB-INTOVERF

可以使用 BD-PB-INTDL、BD-PB-INTUB、BD-PB-INTVC 或 BD-PB-INTWRAP 作为替代。

BD-PB-POVR

可以使用 BD-PB-VOVR 作为替代。

CODSTA-63_b

可以使用 CODSTA-307 和 CODSTA-308 作为替代。

CWE-476-b

从 CWE Top 25 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。

HICPP-4_1_1-b

从 High Integrity C++ 配置中删除。对于其他配置,可以使用 PB-41_b 作为替代。

MISRA2008-0_3_1_f

从 MISRA C++ 2008 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。

MISRA2012-DIR-4_1_f

从 MISRA C 2012 (遗留) 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。

MISRAC2012-DIR_4_1-f

从 MISRA C 2023 (MISRA C 2012) 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。

MISRACPP2023-7_0_3-b

从 MISRA C++ 2023 配置中删除。对于其他配置,可以使用 MISRA2004-6_2 作为替代。

  • No labels