当前位置: 首页 > C/C++, cpp > 正文

软件测试实验报告

软件测试实验报告:

实验一:内存泄露测试

运行结果:2017-06-20 23-32-40 的屏幕截图

 

系统日志打印结果:

2017-06-20 23-32-51 的屏幕截图

错误原因:在死循环中无限分配内存并且不是释放,引发out of mem 错误(内存耗尽)。

实验二:

错误运行结果:

2017-06-20 23-38-09 的屏幕截图

原因及改正:依然是内存泄露错误,代码在判断entry 为空后,并没有释放已经分配的内存。

 

实验三:

错误集改正:如果不确定好port 的范围,当port非常大的时候,此程序可能会无限循环下去,发生故障。

 

实验四:

 

 

2017-06-20 23-43-35 的屏幕截图

错误原因:忽略了C/C++程序的运行时栈结构,导致在拷贝过程中覆盖掉了程序的返回地址,程序执行崩溃。

 

实验五:

程序漏洞:最好给char c 赋予初值,以防止在程序使用出现意想不到错误。

实验六:

 

代码漏洞:小心图中的标注,malloc 有可能返回空值。

实验七:

代码错误:在程序关闭资源语句之前出现条件退出代码语句,可能导致系统资源不能安全释放。

 

实验八:

 

运行结果:

2017-06-21 00-01-59 的屏幕截图

 

漏洞:这段代码本身没有错误,值的注意的是在修改变量的时候需要考虑加锁。

实验九:

结果:

2017-06-21 00-05-27 的屏幕截图

错误原因:缓冲区argvbuffer 开辟过小,预估计不足,程序出错。

改正:1.增大缓冲区

2.判断大小

 

实验十:

结果:

2017-06-21 00-09-41 的屏幕截图

 

错误原因:注意函数边界和缓冲区的长度。

 

实验十一:

结果:

2017-06-21 00-12-31 的屏幕截图

 

注意检查边界不可直接拷贝,不然出错。

 

实验十二:

 

代码漏洞:容易造成多线程多次打开失败错误。

实验十三:

 

漏洞:getfilename 第三个参数必须是随机数。

实验十四:

代码漏洞:小心/bin 下的可执行文件被替换,执行了不安全代码。

实验十五:

漏洞:小心端口被劫持,SO_REUSEADDR解决。

实验十六:

执行结果:

2017-06-21 00-25-23 的屏幕截图

错误原因:不要用系统调用system 执行一个缓冲区的内容,这是很危险的,可能会导致用户执行任意代码。

 

实验十七:

搜索执行是一种很不安全的方式。

实验十八:

漏洞:

慎用系统函数,realloc 和 vfork ,避免意外的内存复制。

 

实验二十:

错误:1.避免暴露绝对路径。

2.避免给可执行文件中写入东西。

 

实验二十一:

 

结果:

2017-06-21 00-35-10 的屏幕截图

缺少复制构造函数base(base & a) ,*p 被释放两次发生double free .

实验二十二:

2017-06-21 00-38-03 的屏幕截图

原因:没有重载“=”发生daouble free .

 

 

 

本文固定链接: http://zmrlinux.com/2017/06/21/%e8%bd%af%e4%bb%b6%e6%b5%8b%e8%af%95%e5%ae%9e%e9%aa%8c%e6%8a%a5%e5%91%8a/ | Kernel & Me

该日志由 root 于2017年06月21日发表在 C/C++, cpp 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 软件测试实验报告 | Kernel & Me