近日调试https解密的代码,发现程序运行到一处memcpy函数就崩溃了:
开始以为是dsl->data的空间不够,后来发现不是,因为dsl-data是加密过的密文,而s_out是解密后的明文,前者明显比后者要长。于是只能一步一步查看传入的参数是否有问题。经过仔细查看,发现dsl是DealSSL定义,
而DealSSL定义为:

于是猜测可能是data指针是作为非法指针传入的,改成如下形式:
问题解决。
总结:运用指针的时候要时刻注意它是否初已经始化,并且分配内存,否则实际代码中查该类问题很费时费力,要养成好的习惯,减少该类问题的发生。
阅读(5335) | 评论(4) | 转发(1) |