LLVM 之 Clang 静态分析器篇:程序缺陷诊断——fopen 和 fclose API 误用

Posted csstormq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LLVM 之 Clang 静态分析器篇:程序缺陷诊断——fopen 和 fclose API 误用相关的知识,希望对你有一定的参考价值。

本文基于release/12.x版本的 LLVM 源码,研究了 Clang 静态分析器中alpha.unix.SimpleStream检查器的工作原理。从而,有助于按照自身需求修改或扩展 Clang 静态分析器。

alpha.unix.SimpleStream检查器用于检测以下两种程序缺陷:

  • 重复释放。即对同一个资源重复调用fclose函数。

  • 资源泄露。即对同一个资源在调用了fopen函数之后未再调用fclose函数。

为了便于研究,本文以插件方式实现了plugin.alpha.unix.SimpleStream检查器。相比于alpha.unix.SimpleStream检查器,其源码实现略有不同。

阅读完整内容见微信公众号同名文章(技术专栏 -> LLVM 编译器)

在这里插入图片描述

以上是关于LLVM 之 Clang 静态分析器篇:程序缺陷诊断——fopen 和 fclose API 误用的主要内容,如果未能解决你的问题,请参考以下文章

LLVM 之 Clang 静态分析器篇:程序缺陷诊断——内存重复释放

LLVM 之 Clang 静态分析器篇:程序缺陷诊断——内存泄露

LLVM 之 Clang 静态分析器篇:程序缺陷诊断——fopen 和 fclose API 误用

LLVM 之 Clang 静态分析器篇:程序缺陷诊断——非法读写已释放的内存

LLVM 之 Clang 源码分析篇:clang::ento::CheckerContext 类

AFL之llvm mode部分源码分析