“混合最少量规则”规则集

Microsoft 组合最小"规则集侧重于在支持公共语言运行库的 C++ 项目的最重要的问题,包括潜在的安全漏洞,应用程序失败。 应在您为支持公共语言运行时的 C++ 项目创建的任何自定义规则集中包含此规则集。

规则

描述

C6001

使用未初始化的内存

C6011

取消引用 null 指针

C6029

对未经检查的值的使用

C6053

零终止从调用

C6059

串联错误

C6063

格式设置功能的缺少字符串参数

C6064

格式设置功能的缺少整数参数

C6066

格式设置功能的丢失的指针参数

C6067

格式设置功能的缺少字符串指针参数

C6101

返回未初始化的内存

C6200

索引超出缓冲区的最大数量

C6201

索引超出堆栈缓冲区的最大数量

C6270

格式设置功能的缺少的参数

C6271

格式设置功能的额外参数

C6272

格式设置功能的非浮点参数

C6273

非整数格式设置功能的 Argumen

C6274

格式设置功能的非字符参数

C6276

无效字符串转换

C6277

无效 CreateProcess 调用

C6284

对布局功能的对象参数无效

C6290

逻辑不按位与优先级

C6291

逻辑不按位或优先级

C6302

格式设置功能的无效字符字符串参数

C6303

格式设置功能的无效的宽字符字符串参数

C6305

不匹配的大小和计数使用

C6306

不正确的变量参数函数调用

C6328

潜在的参数类型不匹配

C6385

读取超过

C6386

编写超过

C6387

参数值无效

C6500

无效的特性属性

C6501

冲突的属性属性值

C6503

引用不能为空

C6504

在非指针的空

C6505

在无效的 MustCheck

C6506

在非指针或数组的缓冲区区域大小

C6507

在取消引用零的空不匹配

C6508

常数中编写

C6509

返回使用在前置条件

C6510

null 终止在非指针

C6511

MustCheck 必须是或 no

C6513

不缓冲区域大小的元素的大小

C6514

缓冲区区域大小超过数组大小

C6515

在非指针的缓冲区区域大小

C6516

在属性上无特性

C6517

在不可读的缓冲区的有效范围

C6518

在非可写缓冲区的可写的大小

C6519

无效的批注:“NeedsRelease”属性的值必须是或 no

C6521

无效范围字符串取消引用

C6522

无效范围字符串类型

C6523

无效范围字符串参数

C6525

无效范围字符串无法访问的位置

C6526

无效范围字符串缓冲区类型

C6527

无效的批注:“NeedsRelease”属性在无效类型的值不能使用

C6530

无法识别的格式字符串样式

C6540

使用此功的属性批注将无效其所有现有__declspec 批注

C6551

大小规格无效:parsable 的表达式

C6552

无效 Deref= 或 Notref=:parsable 的表达式

C6701

该值不 + 一有效是/否/可能值

C6702

该值不是字符串值

C6703

该值不是数字

C6704

意外的批注表达式错误

C6705

参数的预期数字的批注不匹配参数的实际数目的批注

C6706

批注的意外的批注错误

C28021

批注的参数必须是指针

C28182

取消对 NULL 指针的引用。 指针包含与其他指针的 null 值。

C28202

非法引用非静态成员

C28203

对类成员的不明确引用。

C28205

用于一个非法上下文或_On_failure_的_Success_

C28206

左操作个指向结构,使用“- >”

C28207

左操作的是结构,使用“”。

C28210

__on_failure 上下文的批注不能在显式之前上下文

C28211

为 SAL_context 预期的静态上下文名称

C28212

批注预期的指针表达式

C28213

_Use_decl_annotations_ 批注必须用于引用(无需修改)以前的声明。

C28214

属性参数名称必须是 p1… p9

C28215

typefix 无法应用于已具有 typefix 的参数

C28216

checkReturn 批注只应用于特定函数参数的后置条件。

C28217

为函数,参数数目到批注的不匹配的所有文件

C28218

指向函数 paramteer,批注的参数不匹配的所有文件

C28219

批注中的参数应为枚举成员

C28220

整数表达式批注应在该批注的参数

C28221

为批注的参数所需的字符串表达式

C28222

__yes、批注预期的__no 或__maybe

C28223

未找到预期的标记/标识符批注的参数,

C28224

批注需要参数

C28225

没有看到需的正确数目的参数批注中

C28226

批注不能同时是 PrimOp (在当前声明)

C28227

批注不能同时是 PrimOp (请参见前面声明)

C28228

批注参数:不能使用类型批注

C28229

批注不支持参数

C28230

参数的类型没有成员。

C28231

批注只适用于数组

C28232

之前,后置或 deref 未应用于任何批注

C28233

之前,后置或 deref 适用于块

C28234

__at 表达式不适用于流函数

C28235

函数不能单独并肩作战与批注

C28236

批注将不能在表达式

C28237

在参数的批注不再支持

C28238

在参数的批注具有多个值、stringValue 和 longValue。 使用 paramn=xxx

C28239

在参数的批注具有两个值、stringValue 或 longValue;并 paramn=xxx。 仅使用 paramn=xxx

C28240

在参数的批注没有 param2,但 param1

C28241

函数的批注参数中不识别

C28243

函数的批注在参数比批注的实际类型允许需要更多的取消引用

C28245

函数的批注说明“this”在非成员函数

C28246

函数的参数批注不匹配参数的类型

C28250

函数的不一致的批注:前面的实例有错误。

C28251

函数的不一致的批注:此实例都有一个错误。

C28252

函数的不一致的批注:参数具有此实例的另一个批注。

C28253

函数的不一致的批注:参数具有此实例的另一个批注。

C28254

dynamic_cast<>() 在注释不支持

C28262

在该批注的语法错误在函数中,批注的

C28263

在一个条件批注的语法错误为内部批注找到

C28264

结果列表值必须是常量。

C28267

在注释的语法错误是在函数中找到的批注。

C28272

函数的参数,批注,则请与函数声明不一致。

C28273

对于功能,主管与函数声明不一致。

C28275

为_Macro_value_的参数为 null

C28279

对于符号,“启动”中找到,没有匹配的“结束”

C28280

对于符号,“结束”中找到,而不匹配“开始”

C28282

格式字符串必须在前置条件

C28285

为函数,参数中的语法错误

C28286

为函数,在尾部附近的语法错误

C28287

为函数,在 _At_() 批注 (无法识别的参数名) 中的语法错误

C28288

为函数,在 _At_() 批注 (无效参数名) 中的语法错误

C28289

为功能:ReadableTo 或 WritableTo 没有限制规范作为参数

C28290

函数的批注的参数的实际数目包含多个外部

C28291

发送 null/notnull 在 deref 级别 0 对于功能是无意义的。

C28300

不兼容的类型表达式运算符的操作。

C28301

函数的第一个声明的未批注。

C28302

一个额外的_Deref_运算符在注释中。

C28303

不明确的_Deref_运算符在注释中。

C28304

找到了不正确放置的_Notref_运算符应用于标记。

C28305

错误,则标记以查看后分析。

C28350

批注描述不是有条件地适用的情况。

C28351

批注描述动态值 (变量) 的位置不能用于此情况。

CA1001

类型拥有一次性字段应为可释放的

CA1821

移除空的终结器

CA2213

应配置一次性字段

CA2231

超加载到重写 ValueType.Equals 的相等运算符