当我在python代码上运行coverity scan (静态代码分析)时,检测到REVERSE_INULL和FORWARD_NULL错误。有人能说出REVERSE_INULL和FORWARD_NULL之间的区别吗?为什么会检测到这些错误。
发布于 2019-01-11 00:40:44
REVERSE_INULL意味着您有一个解引用,然后是一个null类型的检查。
在伪代码中
x := null
...
x.deref
...
if x is null
# handle null-type x修复方法是将null类型的检查放在取消引用之前。
FORWARD_NULL只是提供了一个空值变量被取消引用的路径。另一个伪代码示例
x := null
...
if x is null
print warning
# but x is still null
x.deref在这里,您必须确保始终处理null。
所以最终我想说的是,REVERSE_INULL和FORWARD_NULL做了同样的null反引用检查,但是在取消引用之后,它还会检测一次检查。
https://stackoverflow.com/questions/53913232
复制相似问题