免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6262 | 回复: 5
打印 上一主题 下一主题

[函数] [已解决]借人气,问棘手问题,ssl_free core dump???!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-02 10:30 |只看该作者 |倒序浏览
本帖最后由 NewCore 于 2017-02-15 01:33 编辑

hi all,

知道本版人气旺,就发在这里吧。

偶的环境是
  1. [root@localhost app_mon]# uname -r
  2. 2.6.25-14.fc9.i686
  3. [root@localhost app_mon]# rpm -qa | grep openssl
  4. openssl-devel-0.9.8g-6.fc9.i386
  5. openssl-0.9.8g-6.fc9.i686
复制代码
这个问题是在用openssl访问https网站时遇到的。因为是作为客户端访问公共的https网站,因此不需要提供客户端证书,大致流程既是;
  1. 初始化大致是:
  2.     https_serv->ctx = SSL_CTX_new(SSLv23_client_method());
  3.     .......
  4.     https_serv->ssl = SSL_new(https_serv->ctx);
  5.     ......
  6.     ret = SSL_set_fd(https_serv->ssl, serv_info->socket);
  7.     .......
  8.     SSL_CTX_set_verify(https_serv->ctx, SSL_VERIFY_NONE, NULL);
  9.     ret = SSL_connect(https_serv->ssl);
  10.     ......
  11. 在关闭连接的时候:
  12.     ERR_free_strings();
  13.     if(NULL != _entity->ssl) {
  14.         SSL_shutdown(_entity->ssl);
  15.         SSL_free(_entity->ssl);
  16.     }
  17.     if(NULL != _entity->ctx)
  18.         SSL_CTX_free(_entity->ctx);
  19.     if(-1 != _entity->sock)
  20.         close(_entity->sock);
  21.    
  22.     free(_entity);

  23. 在执行到SSL_free的时候出现core dump, bt显示如下:
  24. (gdb) bt
  25. #0  0x0584dade in ASN1_STRING_free () from /lib/libcrypto.so.7
  26. #1  0x058444ac in ASN1_primitive_free () from /lib/libcrypto.so.7
  27. #2  0x058447f3 in ?? () from /lib/libcrypto.so.7
  28. #3  0x058448a6 in ASN1_template_free () from /lib/libcrypto.so.7
  29. #4  0x0584478f in ?? () from /lib/libcrypto.so.7
  30. #5  0x058448e8 in ASN1_item_free () from /lib/libcrypto.so.7
  31. #6  0x0583f057 in X509_free () from /lib/libcrypto.so.7
  32. #7  0x0596f510 in ssl_sess_cert_free () from /lib/libssl.so.7
  33. #8  0x05970205 in SSL_SESSION_free () from /lib/libssl.so.7
  34. #9  0x0596e0c0 in SSL_free () from /lib/libssl.so.7
  35. #10 0x0804ac08 in https_deinit ()
  36. #11 0x0804acc8 in app_mon_deinit ()
  37. #12 0x0804add7 in main ()
复制代码
注意到以下两行:
#2  0x058447f3 in ?? () from /lib/libcrypto.so.7
#4  0x0584478f in ?? () from /lib/libcrypto.so.7
是libcryto这个库有什么问题吗?

我网上找了很久,似乎没有人遇到过这个问题,有人能给点提示吗?

论坛徽章:
0
2 [报告]
发表于 2010-02-02 11:26 |只看该作者
SSL_load_error_strings();好象没看到调用,也许不是这个问题

论坛徽章:
0
3 [报告]
发表于 2010-02-02 18:59 |只看该作者
gdb上应该有up down这两个命令,可以在堆栈上移动,移动到你的代码那层堆栈,打印出当时的调用的参数,也许可以对解决问题有所帮助

论坛徽章:
0
4 [报告]
发表于 2010-02-03 09:53 |只看该作者
ERR_free_strings(); 为什么放前面呢?

论坛徽章:
0
5 [报告]
发表于 2017-02-15 01:33 |只看该作者
响应号召,结帖是个好习惯~

论坛徽章:
0
6 [报告]
发表于 2017-02-15 11:20 |只看该作者
bt full 1 看下所有locals 的变量
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP