Chinaunix首页 | 论坛 | 博客
  • 博客访问: 90567
  • 博文数量: 16
  • 博客积分: 367
  • 博客等级: 一等列兵
  • 技术积分: 245
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-25 22:37
文章分类

全部博文(16)

文章存档

2012年(4)

2011年(12)

我的朋友

分类: LINUX

2011-11-03 23:07:37

近日调试https解密的代码,发现程序运行到一处memcpy函数就崩溃了:

开始以为是dsl->data的空间不够,后来发现不是,因为dsl-data是加密过的密文,而s_out是解密后的明文,前者明显比后者要长。于是只能一步一步查看传入的参数是否有问题。经过仔细查看,发现dsl是DealSSL定义,

而DealSSL定义为:

于是猜测可能是data指针是作为非法指针传入的,改成如下形式:

问题解决。

总结:运用指针的时候要时刻注意它是否初已经始化,并且分配内存,否则实际代码中查该类问题很费时费力,要养成好的习惯,减少该类问题的发生。

阅读(5204) | 评论(4) | 转发(1) |
给主人留下些什么吧!~~

2007robot2011-11-06 08:11:11

也学习一下!

daoba132011-11-05 10:05:34

sunny_piza:
没有初始化的指针或是野指针,或是空指针。使用这类指针, 必然导致程序segment fault。所以,使用指针之前, 必须让指针指向一个合法的地址。.....
不仅要保证是合法的地址,良好习惯还必须初始化。

chenhao1123582011-11-04 20:08:59

这个问题反映的非常好,编码过程中经常遇到指针没有初始化大小的情况。

sunny_piza2011-11-04 08:59:53


没有初始化的指针或是野指针,或是空指针。使用这类指针, 必然导致程序segment fault。所以,使用指针之前, 必须让指针指向一个合法的地址。