摘要
为了实现对C程序中空指针引用的充分检测,本文提出了一种基于区域内存模型的空指针引用缺陷检测方法.首先,提出了基于区域的符号化三值逻辑(Region-based Symbolic Three-Valued Logic,RSTVL),RSTVL能够描述C程序运行时内存中数据结构的形态信息与变量的存储状态,以及可寻址表达式间的各种关系;其次,给出了基于抽象语法树与函数摘要识别被引用指针方法;最后,结合基于RSTVL的数据流分析结果,将对被引用指针的检测转换为对相应区域的检测,给出了空指针引用缺陷检测的方法,通过函数摘要实现过程间的空指针引用缺陷检测.对比实验结果表明,本文方法在保证一定检测准确率的前提下,能够极大的减少空指针引用缺陷的漏报.
-
单位中国石油大学(华东); 网络与交换技术国家重点实验室; 北京邮电大学