首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐蔽性扫描(静态代码分析)中的REVERSE_INULL和FORWARD_NULL错误有什么区别?

隐蔽性扫描(静态代码分析)中的REVERSE_INULL和FORWARD_NULL错误有什么区别?
EN

Stack Overflow用户
提问于 2018-12-24 20:06:19
回答 1查看 2.4K关注 0票数 0

当我在python代码上运行coverity scan (静态代码分析)时,检测到REVERSE_INULL和FORWARD_NULL错误。有人能说出REVERSE_INULL和FORWARD_NULL之间的区别吗?为什么会检测到这些错误。

EN

回答 1

Stack Overflow用户

发布于 2019-01-11 00:40:44

REVERSE_INULL意味着您有一个解引用,然后是一个null类型的检查。

在伪代码中

代码语言:javascript
复制
x := null
...
x.deref
...
if x is null
    # handle null-type x

修复方法是将null类型的检查放在取消引用之前。

FORWARD_NULL只是提供了一个空值变量被取消引用的路径。另一个伪代码示例

代码语言:javascript
复制
x := null
...
if x is null
    print warning
    # but x is still null

x.deref

在这里,您必须确保始终处理null。

所以最终我想说的是,REVERSE_INULLFORWARD_NULL做了同样的null反引用检查,但是在取消引用之后,它还会检测一次检查。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53913232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档