如何将库/依赖项的额外源代码添加到 CodeQL 数据库?

问题描述

我试图在我从 LGTM (GNU coreutils) 下载的代码存储库中全局跟踪污点,但 CodeQL 似乎也考虑调用 libc 'tainted',而它们实际上并没有引入任何污点。考虑以下示例:

size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream);

int bytes = fread(some_array,sizeof(*some_array),sizeof(some_array),some_fptr);

如果 some_arraysome_fptr 被污染,字节现在也会被 CodeQL 视为被污染。我怀疑这是为了安全起见(而不是高估污点而不是低估)。

编辑:显然外部调用被认为默认不会引入污点,但对于常见的 API,如 libc,根据文档制作了关于污点跟踪的模型。然而,在这种情况下,它似乎有点错误,但它们在不断发展。

我将如何处理包括 f.e. CodeQL 保存的源数据库中的 glibc 源,以便查询可以更准确地确定这些“闭源”函数调用中的污点?

如果代码依赖于其他一些预编译库怎么办,我该如何让 CodeQL 可以使用它的源代码?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)