splint是一个静态检查C语言程序安全弱点和编写错误的工具。splint会进行多种常规检查,包括未使用的变量,类型不一致,使用未定义变量,无法执行的代码,忽略返回值,执行路径未返回,无限循环等错误。同时通过在源码中添加注记给出的附加信息,使其可以进行功能更加强大的检查。而注记,则是对文件中的函数、变量、参数以及...
不对这个例子进行详细检查,可能我们不能发现其中隐含的问题,执行splint +bounds bounds2.c之后,会抛出如下告警: bounds2.c: (infunction bounds2) bounds2.c:7:3: Possibleout-of-bounds store: strcpy(str, tmp) Unable to resolve constraint: requires maxSet(str @ bounds2.c:7:10) >= maxRead(getenv...
编写或获取待检查的代码: 准备你要用Splint检查的C或C++代码。如果你还没有代码,可以编写一个简单的测试程序来练习。 运行Splint: 使用终端导航到包含你的代码文件的目录。 假设你的文件名为example.c,则可以在终端中输入以下命令来运行Splint: splint example.c 复制代码 Splint将输出任何检测到的错误或警告。 解读...
执行splint null_dereference.c命令,将产生以下告警消息: null_dereference.c: (in function func_null_dereferences) null_dereference.c:5:10: Dereference of null pointer a: *a A possibly null pointer is dereferenced. Value is either the result of a function which may return null (in which case,...
1//splint_msg.c 2intfunc_splint_msg1(void) 3{ 4inta; 5return0; 6} 7intfunc_splint_msg2(void) 8{ 9int*a=(int*)malloc(sizeof(int)); 10a=NULL; 11return0; 12} 运行splint splint_msg.c之后,我们来看输出的告警信息: splint_msg.c: (in function func_splint_msg1) ...
Ubuntu中C代码静态检查工具Splint的安装配置和使用 1、从http://www.splint.org/download.html下载splint-3.1.2.src.tgz,存放到/home/spring/Splint文件夹下; 2、打开终端; 3、解压缩:tar zxvfsplint-3.1.2.src.tgz 4、安装到/usr/local/splint目录下:...
### 摘要 Splint是一款开源的静态代码分析工具,专为检测C语言编写的程序中的安全漏洞和编码错误而设计。它能够执行多种标准的安全检查,如检测未使用的变量、错误的内存管理等问题。在使用Splint进行代码审查时,提供丰富的代码示例对于展示其功能和提高检测的准确性至关重要。 ### 关键词 静态分析, 代码检测, C语言...
特殊注释指示变量的定义与使用顺序。3、类型错误:C语言中有多种数据类型,Splint检查变量类型,确保类型兼容。四、内存检查 缓冲区溢出错误是危险的C语言错误,Splint检查缓冲区使用,报告溢出或越界错误。通过实例演示缓冲区大小限制,确保正确使用元素索引。欢迎关注并支持作者,后续将更新更多内容。
读取一个或多个C/C++源程序,将每个源程序分割成函数标志流,然后检查生成的标志是否存在于漏洞数据库中,从而得到每个源程序的所有错误警告列表,并带有相关的描述。其规则库vulns.i4d定义了各种函数的危险等级,描述等,通过规则匹配来报出风险,但它不能理解程序上下文意思,存在很大的误报。 Flawfinder 词法扫描和分析,...
Ubuntu Splint是一个专注于C语言静态分析的工 具,它与其他静态分析工具的主要区别在于其特定的语言支持和功能集。以下是关于Ubuntu Splint与其他静态分析工具的区别:### 语言...