首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在git补丁中使用flawfinder

如何在git补丁中使用flawfinder
EN

Stack Overflow用户
提问于 2021-04-03 22:05:58
回答 1查看 32关注 0票数 0

我想为我的合并请求使用flawfinder,从而只分析发生变化的代码。我看到缺陷查找器支持补丁,所以我想这真的很容易。

问题是:我不能用git补丁让它工作。Flawfinder确实识别出这是一个git补丁,它确实只扫描所需的文件,但没有命中。如果我在不带patch参数的情况下运行flawfinder,并检查更改后的文件中的命中,我确实在添加的新行中看到了一些命中。我尝试了svn的一个不同之处:工作起来像一个护身符。没有任何不同:相同。与git的不同之处在于:没有办法让它工作。

如果有人有主意,我会很乐意接受的。或者举个例子。

复制的快速命令:

代码语言:javascript
复制
git diff --patch --output PATCH
flawfinder --patch PATCH <dir>

我得到了输出:

代码语言:javascript
复制
Examining <dir>/<file.c>
                                     
FINAL RESULTS:                       
                                     
                                     
ANALYSIS SUMMARY:                    
                                     
No hits found.                       
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-07 20:52:18

对于那些感兴趣的人:这确实是一个问题,因为git diff格式与统一的diff / svn diff格式略有不同。

代码语言:javascript
复制
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中使用的正则表达式:

代码语言:javascript
复制
 diff_hunk = re.compile(r'^@@ -\d+(,\d+)?\s+\+(?P<linenumber>\d+)[, ].*@@$')

只需删除正则表达式中的$就足以使其在git上工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66932060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档