我想为我的合并请求使用flawfinder,从而只分析发生变化的代码。我看到缺陷查找器支持补丁,所以我想这真的很容易。
问题是:我不能用git补丁让它工作。Flawfinder确实识别出这是一个git补丁,它确实只扫描所需的文件,但没有命中。如果我在不带patch参数的情况下运行flawfinder,并检查更改后的文件中的命中,我确实在添加的新行中看到了一些命中。我尝试了svn的一个不同之处:工作起来像一个护身符。没有任何不同:相同。与git的不同之处在于:没有办法让它工作。
如果有人有主意,我会很乐意接受的。或者举个例子。
复制的快速命令:
git diff --patch --output PATCH
flawfinder --patch PATCH <dir>我得到了输出:
Examining <dir>/<file.c>
FINAL RESULTS:
ANALYSIS SUMMARY:
No hits found. 发布于 2021-04-07 20:52:18
对于那些感兴趣的人:这确实是一个问题,因为git diff格式与统一的diff / svn diff格式略有不同。
diff --git a/file.c b/file.c
index 19651c89a3..c119389931 100644
--- a/file.c
+++ b/file.c
@@ -5017,6 +5017,15 @@ static void foo() svn / unified diff在最后一个@@之后没有函数名。下面是flawfinder.py中使用的正则表达式:
diff_hunk = re.compile(r'^@@ -\d+(,\d+)?\s+\+(?P<linenumber>\d+)[, ].*@@$')只需删除正则表达式中的$就足以使其在git上工作。
https://stackoverflow.com/questions/66932060
复制相似问题