可以在Flex生成的扫描仪文件中忽略Coverity静态分析器报告的问题

时间:2017-05-31 07:59:28

标签: coverity

我在My Project上运行Coverity静态分析器工具,它有一些flex / bison生成的cpp文件。 Coverity报告其中一个flex文件时发出警告。

CID 340350 (#1 of 1): Dereference before null check (REVERSE_INULL)
check_after_deref: Null-checking **yyg->yy_buffer_stack**

表明它可能为空,但已在所有导致检查的路径上取消引用。

Flexity生成的文件的代码段,其中Coverity报告了问题:

if (YY_CURRENT_BUFFER) {
        DNParser_load_buffer_state(yyscanner );
        yyg->yy_did_buffer_switch_on_eof = 1;
    }
}

1 个答案:

答案 0 :(得分:1)

有两种可能性 - 要么它可以是NULL,在这种情况下会有一个错误,因为指针在进行检查之前已经被解除引用,或者检查是过于防御性的编码而没有任何意义。

由于它是生成的代码,我倾向于忽略缺陷,除非你认为它实际上可以是NULL。