当指针被另一个函数返回时,未检测到空指针解除引用问题

我使用SonarQube(5.1和cppecheck 1.70)来分析C代码.

在下面的示例中,有一个空指针解引用问题应由SonarQube和/或Cppcheck(由Sonar使用)检测.但是没有问题,SonarQube发现了Cppcheck的支持.

struct s1
{ 
    char c1;
    char c2;
};

struct s1 * toto1(void)
{ 
    return NULL;
}

void toto2(void)
{ 
    struct s1* my_st=NULL;
    my_st = toto1();
    my_st->c1 = 1;
    my_st->c2 = 0;
    return;
}

在这种情况下,这个规则是否有任何限制(不应该取消引用空指针)?

最佳答案 我是Cppcheck开发人员.

我很惊讶Cppcheck没有发现这一点.

我在上游创建了这张票:
http://trac.cppcheck.net/ticket/7132

谢谢!如果你发现更多的漏报,请告诉我.

点赞