| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2203 人关注过本帖
标题:openssl DTLS内存泄露问题怎么解决
只看楼主 加入收藏
zxygww
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-11-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
openssl DTLS内存泄露问题怎么解决
本人当前开发调试开源项目opencapwap,在使用openssl库建立DTLS连接时出现严重的内存泄露问题。

介绍:opencapwap对每个会话建立一个线程,在线程中使用X509证书进行DTLS 的握手连接,成功连接后进行通信,会话结束后,线程退出,线程退出时会调用下列函数来释放openssl的资源。
(参照openssl FQA中针对内存泄露的问题)
ERR_remove_state(0);
ENGINE_cleanup();
CONF_modules_unload(1);
ERR_free_strings();                                
EVP_cleanup();                                       
CRYPTO_cleanup_all_ex_data();

测试:现通过测试会话线程的反复建立和销毁,发现严重的内存泄露问题,整个进程占用的内存资源不断增大。

分析:使用valgrind进行测试,发现内存泄露位置存在于openssl库中,log如下,从log分析看来每次会话握手协商获取客户端证书时会申请一块内存,但会话线程退出时没有释放。
不知各位大侠有何高见!我弄了一周了,都没有办法,急死我了!求救各位大侠帮忙啊!!!!

log:--------------------------------------------
==19217== 187,068 (3,864 direct, 183,204 indirect) bytes in 42 blocks are definitely lost in loss record 237 of 240
==19217==    at 0x4023F50: malloc (vg_replace_malloc.c:236)
==19217==    by 0x8090EBF: CRYPTO_malloc (mem.c:328)
==19217==    by 0x80B7602: asn1_item_ex_combine_new (tasn_new.c:191)
==19217==    by 0x80BA711: ASN1_item_ex_d2i (tasn_dec.c:398)
==19217==    by 0x80BAE88: ASN1_item_d2i (tasn_dec.c:134)
==19217==    by 0x80B6946: d2i_X509 (x_x509.c:136)
==19217==    by 0x807ECB4: ssl3_get_client_certificate (s3_srvr.c:2576)
==19217==    by 0x806AB14: dtls1_accept (d1_srvr.c:484)
搜索更多相关主题的帖子: 开发 通信 项目 证书 资源 
2013-11-17 23:27
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:7 
这个库是谁维护的,提交这个bug报告让他修复,或者你有源代码自己修复了重新生成

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-11-19 07:44
pink_duo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:209
专家分:1054
注 册:2013-11-5
收藏
得分:7 
从log分析看来每次会话握手协商获取客户端证书时会申请一块内存,但会话线程退出时没有释放。
查看下函数里有没有声明了占用空间比较大的数组局部变量

埋头做牛,抬头做人,低头做狗
2013-11-19 18:06
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:7 
openssl 好像是开源的
比较成熟的一个项目,应该不会泄漏才对

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-11-19 20:43
快速回复:openssl DTLS内存泄露问题怎么解决
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016473 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved