【问题标题】:what is difference betwen REVERSE_INULL and FORWARD_NULL error in coverity scan(static code analysis)?覆盖率扫描(静态代码分析)中的 REVERSE_INULL 和 FORWARD_NULL 错误有什么区别?
【发布时间】:2019-05-23 14:31:31
【问题描述】:

当我对 python 代码(静态代码分析)运行覆盖率扫描时,检测到 REVERSE_INULL 和 FORWARD_NULL 错误。谁能说出 REVERSE_INULL 和 FORWARD_NULL 之间有什么区别?为什么会检测到这些错误。

【问题讨论】:

    标签: coverity coverity-prevent


    【解决方案1】:

    REVERSE_INULL 表示您有一个取消引用,然后是一个空类型检查。

    在伪代码中

    x := null
    ...
    x.deref
    ...
    if x is null
        # handle null-type x
    

    解决方法是将空类型检查放在取消引用之前。

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

    x := null
    ...
    if x is null
        print warning
        # but x is still null
    
    x.deref
    

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

    所以最终我会说REVERSE_INULL 执行与FORWARD_NULL 相同的空取消引用检查,但它还会在取消引用后检测到检查。

    (标准免责声明 - 我曾经为 Synopsys 工作,但不是生产 Coverity 的部门)。

    【讨论】:

      猜你喜欢
      • 2013-03-08
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 2013-05-31
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多