GCC 14 编译器中静态分析的改进 | Red Hat 开发者

主要观点:作者在 Red Hat 工作,主要从事 GCC 中 -fanalyzer 的相关工作,本文总结了 GCC 14 中 -fanalyzer 的新特性。
关键信息:

  • GCC 14 中 -fanalyzer 新增 -Wanalyzer-infinite-loop 警告可检测简单无限循环,如特定 C 代码中的错误。
  • 13 版支持边界检查警告 -Wanalyzer-out-of-bounds,14 版增加可视化缓冲区溢出的文本图,展示非 ASCII 字符串的溢出情况。
  • 14 版的分析器更好地跟踪 C 字符串操作,添加新函数属性 null_terminated_string_arg 来告知分析器参数应为空终止字符串。
  • 分析器有“污点分析”功能,默认启用并包含 6 个基于污点的警告,如在 Linux 内核的 CVE-2011-2210 示例中可检测到漏洞。
    重要细节:
  • 介绍了各种警告和分析功能的具体示例及输出,如无限循环示例的输出格式和各事件的含义。
  • 提及通过 Compiler Explorer 网站可尝试代码示例,如不同版本的代码在该网站上的运行情况。
  • 说明正在继续在内核中运行分析器查找漏洞并修复误报。
  • 提到 GCC 14 预计 2024 年 4 月正式发布,Fedora 40 Beta 已使用其预发布版本(GCC 14.0)。
阅读 58
0 条评论