问题标签 [semmle-ql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 正在使用无法识别 C int 类型的静态代码分析器
我在工作中的大型嵌入式系统项目(C/C++)上使用静态代码分析器。目前,所有模块都存在以下违规行为:
应该使用指示大小和符号的类型定义来代替基本类型。
但是,我们定义了一个头文件 (footypes.h),其中包含以下内容:
然后,模块中的实际代码如下所示:
据我所知,这段代码是正确且可移植的——这只是误报,还是实现有问题?
编辑:我刚刚意识到,实际上只有在使用指针时才会给出违规行为——我已经更新了示例模块代码以反映这一点。
semmle-ql - 如何在部分 c 源代码上使用 CodeQL?
我有一个项目的部分 c 源代码,因此我无法构建。有谁知道是否可以在该项目上运行 codeql?
通常,要创建数据库,codeql cli 需要指定构建项目的命令,我无法绕过它,即使我会说能够构建项目看起来并不重要。
不过我可能是错的,欢迎任何见解。
javascript - codeql CLI lgtm.yml:如何自定义 javascript 提取?
在使用 LGTM.com 构建数据库时,我可以使用 lgtm.yml 文件自定义 javascript 提取器,但是如何将这些自定义提供给 codeql CLI?
具体来说,我想包含一个提取器默认排除的目录(node_modules)。
这是我的 lgtm.yml 文件:
python - 实现 CI 测试以检查函数参数是否有效的方法?
假设我有一个 python 函数和字典,如下所示:
当我将代码推送到 GitHub 时(可能是某种持续集成),有没有办法检查所有调用是否foo
仅使用 的一个键d
作为input
参数,如果有调用带有无效参数,则标记它还是发出警报?
例如:
我知道如何ValueError
在运行时引发异常,但我正在寻找一个 CI 解决方案以包含在我们的 GitHub 工作流程中。现在我们正在使用 Travis-CI 进行自定义测试和 LGTM 提供的标准 CodeQL 测试。我研究过通过 LGTM 使用自定义 CodeQL,但我不太明白。我会很好地在这些持续集成中实现它或实现第三个。
c++ - 如何创建对 CodeQL 的导入
我想为我的 CodeQL 查询创建一个导入。
我希望这个导入将被命名Utils
,并且我将在其中创建一个名为isNumber
.
我怎样才能创建这样的导入?
我希望我的代码看起来像这样:
我不知道如何创建Utils
导入,它写道:
无法解析模块 Utils
我试图Utils
在我的代码查询 ( code.ql
) 附近创建一个名为的文件夹,但它不起作用。
c++ - 无法从不同的文件夹添加 CodeQL 库:“无法解析模块"
我有以下文件夹结构:
这是开头Config.qll
:
我在四行有一个错误import MemMangementLibraries.FFmpegMemory
::
无法解析模块 MemMangementLibraries.FFmpegMemory
我不明白为什么。我使用库名称后的文件夹名称进行了导入:
知道可能是什么问题吗?
如果我将库移动FFmpegMemory.qll
到文件夹下Dangerous_Memcopy
并将第四行更改Config.qll
为import FFmpegMemory
,它将接受它。
它似乎无法识别MemMangementLibraries
导入中使用的文件夹。
github - 如何阻止 LGTM 包装 qmake
自动代码审查服务LGTM使用“围绕流行的构建工具(如 pkg-config、CMake 和 qmake)的包装脚本”来检测构建过程中丢失的文件并自动安装相应的包。
我的项目使用CMake
,但要从 Qt 获得一些路径,我需要qmake
在一个地方:
这些行在我测试过的任何地方都可以正常工作,除了在 LGTM 环境中。在 LGTM 环境中,所需的信息不会放入QT_QM_PATH
,而是打印出来(在构建日志中可见)。
我强烈怀疑包装器会导致这种情况,因为其他命令按预期工作。
问题:我怎样才能阻止 LGTM 包装qmake
或如何欺骗cmake
捕获包装的输出qmake
?