入门浅试记录一下,文档还没看完
安装
下载压缩包解压到一个位置
export PATH=$PATH:<codeql_path>
建立XNU database
cd 进xnu源码的存放位置
codeql database create xnu-database --language=cpp --command="make SDKROOT=macosx ARCH_CONFIGS=X86_64 KERNEL_CONFIGS=RELEASE"
查询测试
首先建立一个CodeQL package
codeql pack init xnuql -e cpp
然后添加cpp-all
cd xnuql
codeql pack add codeql/cpp-all
在package里新建一个ql文件,配合vscode的CodeQL插件就可以简单进行查询,来进行一点简单的测试先,参考这篇文章
可以查询到
在sogetoptlock()
有一条路径即使错误也不会设置错误返回值,然而copyout()
的第三个参数实际上是个sizeof
,事实上查看查询结果,有很多误报sizeof
的结果,可能是由于AST里还是有sizeof(arg)
在的原因吧。