是否有任何clang静态分析仪查看SQLite问题



Xcode使用的clang静态分析仪使用检查器来识别源代码中的警告和错误。我想使用Checker检测何时将sqlite与sqlite3_prepare_v2一起使用,而无需调用sqlite3_finalize

这是现有检查器的列表。

http://clang-analyzer.llvm.org/available_checks.html

,这里是潜在的跳棋列表。

http://clang-analyzer.llvm.org/potential_checkers.html

是否有特定于SQLite的检查员可以解决此问题?有其他方法可以自动检测缺失/不平衡调用吗?

不幸的是没有办法。

您只能做,请确保您已经在sqlite3_prepare块中写了sqlite3_finalize,而不是在外面写作。这将处理sqlite3_prepare故障问题。

if(sqlite3_prepare(dbfile,query,-1,&statement,0)==SQLITE_OK)
{
   int res=sqlite3_step(statement);
   result=res;
   sqlite3_finalize(statement);
}

如果您是sqlite3_prepare块外的sqlite3_finalize,则会在sqlite3_prepare语句失败时引起问题。

请查看此示例:使用C

访问SQLite数据库

有一个clang静态分析仪,您可以在https://github.com/xsecurity/xsecurity

中找到它。

最新更新