发布 GNU cflow 1.7 实用程序

经过三年的开发,GNU cflow 1.7实用程序已经发布,旨在构建C程序中函数调用的可视化图,可用于简化应用程序逻辑的研究。 该图仅基于对源文本的分析而构建,而不需要执行程序。 支持正向和反向执行流程图的生成,以及代码文件交叉引用列表的生成。

该版本值得注意的是实现了对“点”输出格式('—format=dot')的支持,以 DOT 语言生成结果,以便在 Graphviz 包中进行后续可视化。 添加了通过复制“—main”选项来指定多个启动函数的功能;将为每个函数生成一个单独的图表。 还添加了“--target=FUNCTION”选项,它允许您将结果图限制为仅包含某些函数的分支(“--target”选项可以指定多次)。 cflow-mode 中添加了用于图形导航的新命令:“c”- 转到调用函数,“n”- 转到给定嵌套级别的下一个函数,“p”- 转到具有相同嵌套级别的上一个函数嵌套级别。

新版本还消除了 2019 年发现的两个漏洞,这些漏洞在 cflow 中处理特殊格式的源文本时会导致内存损坏。 第一个漏洞 (CVE-2019-16165) 是由解析器代码中的释放后使用内存访问引起的(参考 parser.c 中的函数)。 第二个漏洞 (CVE-2019-16166) 与 nexttoken() 函数中的缓冲区溢出有关。 据开发人员称,这些问题不会构成安全威胁,因为它们仅限于实用程序的异常终止。

来源: opennet.ru

添加评论