Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245257
  • 博文数量: 39
  • 博客积分: 199
  • 博客等级: 二等列兵
  • 技术积分: 426
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-25 14:39
个人简介

博客已全部转移至个人站 www.jasonwho.com

文章分类

全部博文(39)

文章存档

2017年(2)

2014年(1)

2013年(28)

2010年(8)

分类: C/C++

2013-04-25 15:35:03

今天在帮忙查看一个程序出现大量core文件时,用gdb发现几乎所有的core都出现在sprintf使用附近,查看代码,显示这个函数存在迭代使用的情况,即sprintf越界后,还会在下一次迭代继续使用变量内存,导致后续有个memcpy产生core.MARK一下,在sprintf越界后会,变量处于未定义状态,一定要小心哦!最好使用snprintf或strncat拼接字符串,使用snprintf时注意n的长度应该为strlen(str) + 1,这样才可以保证snprintf能把终结符正确地加到你的str后.
阅读(2751) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~