Chinaunix首页 | 论坛 | 博客
  • 博客访问: 192554
  • 博文数量: 44
  • 博客积分: 1515
  • 博客等级: 上尉
  • 技术积分: 480
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-06 16:39
文章分类

全部博文(44)

文章存档

2013年(3)

2012年(2)

2011年(2)

2009年(20)

2008年(17)

我的朋友

分类: C/C++

2008-07-20 16:46:57

在开发过程中发现这样一个bug。
在函数的开始部分以
char* frame_buf=(char*)malloc(1024*128);
 实现一段内存的分配。
在函数的结尾释放该段内存:
if(frame_buf)
{
    free(frame_buf);
    frame_buf=NULL;
}
在代码执行过程回出现释放frame_buf失败的情况,而在此前跟本没有释放。

最后跟踪发现,在该函数当中调用了一个fs_av_read_data函数,一个参数为frame_buf,而在fs_av_read_data中向frame_buf memcpy数据,会发生越界的情况。通过修改frame_buf的大小,问题得到解决。疑惑的是为什么free会发生问题。
阅读(823) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~