<?xml version="1.0" encoding="utf-8"?>
<def format="1">
<section name="CodeTrace" value="1">
</section>
<section name="Autofilter" value="0">
</section>
<section name="PathToIgnore">
</section>
<section name="JumpCode">
<jumpcode name="assert">
<arg index="1" />
</jumpcode>
<jumpcode name="check">
<arg index="1" />
</jumpcode>
</section>
<section name="Checks">
<id name="nullpointer" value="1">
<subid name="dereferenceAfterCheck" value="1" severity="Serious" rule_name="先判空后解引用" desc="指针先判空,然后在判空作用域外解引用,因为指针判空暗示当前上下文该指针可能为空,因此建议对没有在判空作用域的指针添加判空保护。" />
<subid name="funcRetNull" value="0" severity="Warning" rule_name="函数返回值未判空解引用" desc="函数存在返回NULL的分支,所以返回值可能为空,应该先判空再使用" />
<subid name="funcRetNullStatistic" value="1" severity="Serious" rule_name="基于统计推断函数返回值未判空" desc="通过分析代码调用模式,如果调用func函数,有10处对返回值进行了判空,而只有1处没有判空,那么很有可能是漏掉了判空。" />
<subid name="dereferenceBeforeCheck" value="1" severity="Serious" rule_name="先解引用后判空" desc="指针先解引用然后才判空,因为指针判空暗示当前上下文该指针可能为空,因此建议对没有在判空作用域的指针添加判空保护" />
<subid name="dereferenceIfNull" value="1" severity="Critical" rule_name="指针为空解应用" desc="if条件判断指针等于NULL成立时对指针解引用,通常是判空条件写反了导致的" />
<subid name="explicitNullDereference" value="1" severity="Critical" rule_name="显式空指针解应用" desc="存在一条代码执行路径,使得空指针直接解引用" />
<subid name="checkNullDefect" value="1" severity="Critical" rule_name="判空条件缺陷" desc="if表达式判空缺陷,通常是||和&&写反了" />
<subid name="invalidDereferenceIterator" value="1" severity="Serious" rule_name="无效枚举器解引用" desc="枚举器可能指向容器的end()位置,此时解引用会导致程序错误" />
<subid name="funcDereferenceAfterCheck" value="0" severity="Warning" rule_name="函数先判空再解引用" desc="函数返回值指针先判空,然后在判空作用域外解引用,因为指针判空暗示当前上下文该指针可能为空,因此建议对没有在判空作用域的指针添加判空保护。" />
<subid name="arrayDereferenceAfterCheck" value="0" severity="Warning" rule_name="数组取值先判空再解引用" desc="数组取值先判空,然后在判空作用域外解引用,因为判空暗示当前上下文该指针可能为空,因此建议添加判空保护。" />
<subid name="possibleDereferenceAfterCheck" value="0" severity="Information" rule_name="可能存在先判空后解引用,但是解引用已不在判空范围内" desc="可能存在数组先判空,再解引用,但是判空范围已失效" />
<subid name="funcFuncRetNull" value="0" severity="Warning" rule_name="函数返回值赋值另一函数的引用返回值, 该引用未判空情况下解引用" desc="函数存在返回NULL的分支,所以返回值可能为空,若将返回值赋给返回引用的函数,存在风险,应该先判空再使用。" />
<subid name="arrayFuncRetNull" value="0" severity="Warning" rule_name="函数返回值赋值数组, 该数组未判空情况下解引用" desc="函数存在返回NULL的分支,所以返回值可能为空,若将返回值赋给返回数组,存在风险,应该先判空再使用。" />
<subid name="funcDereferenceBeforeCheck" value="0" severity="Warning" rule_name="函数的引用返回值被先解引用后判空" desc="函数的引用返回值要先解引用然后才判空,因为判空暗示当前上下文该指针可能为空,因此建议添加判空保护" />
<subid name="arrayDereferenceBeforeCheck" value="0" severity="Serious" rule_name="数组被先解引用后判空" desc="数组元素先判空,然后在判空作用域外解引用,因为判空暗示当前上下文该该数组元素的地址可能为空,因此建议添加判空保护。" />
<subid name="funcDereferenceIfNull" value="1" severity="Critical" rule_name="函数引用返回值为空解应用" desc="if条件判断函数的引用返回值等于NULL成立时解引用,通常是判空条件写反了导致的" />
<subid name="arrayDereferenceIfNull" value="1" severity="Critical" rule_name="数组为空解引用" desc="if条件判断数组等于NULL成立时解引用,通常是判空条件写反了导致的" />
<subid name="possibleNullDereferenced" value="0" severity="Information" rule_name="可能的空指针解引用" desc="检查工具无法确定是否是空指针,但存在这个可能需要人工确定,如:char *p = GetSomePointer();工具未能找到GetSomePointer()函数的实现或无法确定该函数是否不可能返回空,所以对指针p解引用就会报该错误" />
<subid name="nullPointerArray" value="0" severity="Information" rule_name="数组元素空指针" desc="数组元素空指针未进行判空保护进行解引用操作" />
<subid name="nullPointerArg" value="0" severity="Information" rule_name="函数的参数没有判断空指针" desc="函数的参数没有判空,可能会因为空指针带来宕机等严重问题" />
<subid name="nullPointerClass" value="0" severity="Warning" rule_name="类成员变量没有判断空指针" desc="类成员变量没有判空,可能会因为空指针带来宕机等严重问题" />
<subid name="directFuncPossibleRetNull" value="0" severity="Warning" rule_name="函数返回值直接解引用" desc="函数返回值直接解引用,如,GetInstance()->SetID(nID);//GetIntance函数有可能返回空,没有做检查就直接解引用" />
<subid name="missingDerefOperator" value="1" severity="Serious" rule_name="可能缺少*号操作符" desc="变量判空可能缺少*号操作符,比如:*p = xxx; if(p == NULL) { XXX; }应该对*p判空。" />
</id>
<id name="bufoverrun" value="1">
<subid name="arrayIndexOutOfBounds" value="1" severity="Critical" rule_name="数组下标越界" desc="数组下标可能产生越界访问,请检查数组下标的最大取值是否超过了数组长度" />
<subid name="negativeIndex" value="0" severity="Serious" rule_name="负数下标" desc="负数下标作为数组下标,通常是不合理的" />
<subid name="arrayIndexThenCheck" value="1" severity="Critical" rule_name="先访问数组后校验下标范围" desc="比如 array[i] && i < length这种场景, 应该先检查下标再使用" />
<subid name="arrayIndexCheckDefect" value="1" severity="Critical" rule_name="数组下标校验缺陷" desc="对数组下标的保护存在缺陷,通常是漏掉了数组长度的边界值" />
<subid name="bufferAccessOutOfBounds" value="1" severity="Serious" rule_name="数据缓冲区越界" desc="访问缓冲区越界,读写缓冲区的长度超过了缓冲区本身的大小" />
<subid name="funcRetLengthAsIndex" value="1" severity="Serious" rule_name="read函数返回值作为数组下标" desc="read函数的返回值最大可能为缓冲区大小,如果直接把返回值作为数组下标使用,可能造成越界" />
<subid name="stlOutOfBounds" value="1" severity="Serious" rule_name="stl库函数越界" desc="stl库函数导致的越界" />
<subid name="OutOfBoundsStatistic" value="0" severity="Serious" rule_name="基于统计推断数据下标可能越界" desc="通过分析代码下标访问特征推断可能数组下标访问越界
没有合适的资源?快使用搜索试试~ 我知道了~
TscanCode 是腾讯研发的静态代码扫描工具 for mac
共19个文件
cfg:10个
xml:3个
ini:2个
需积分: 24 1 下载量 182 浏览量
2023-02-17
16:00:23
上传
评论
收藏 2.28MB ZIP 举报
温馨提示
TscanCode致力于帮助程序员从一开始就发现代码缺陷。 1. 支持多种语言:C/C++、C语言和LUA代码。 2. 快速准确,性能可达每分钟200K线,准确率达90%左右。 3. 使用方便,不需要严格的编译环境,一个命令即可运行。4. 可扩展,您可以使用TscanCode实现自己的检查。
资源推荐
资源详情
资源评论
收起资源包目录
tsc_tools_for_mac.zip (19个子文件)
tsclua 1.07MB
cfg_cs.ini 102B
TscSharp 1.3MB
tscancode 3.22MB
rule.xml 10KB
filter.ini 0B
cfg
avr.cfg 12KB
std.cfg 102KB
sdl.cfg 2KB
gnu.cfg 7KB
cfg.xml 28KB
windows.cfg 42KB
qt.cfg 3KB
posix.cfg 46KB
gtk.cfg 498KB
microsoft_sal.cfg 17KB
lua_cfg.xml 9KB
lua_std.cfg 24KB
unity.csharp.exp 9KB
共 19 条
- 1
资源评论
华夏鹰
- 粉丝: 4
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功