首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用libssl/libcrypto时出现Segfault

使用libssl/libcrypto时出现Segfault
EN

Stack Overflow用户
提问于 2011-10-10 22:07:00
回答 2查看 1.2K关注 0票数 1

当我在调试一些代码时,这更多的是一种假设。假设我有一个应用程序(名为X),它调用lib通过TLS加密的SMTP连接发送电子邮件,同时X正在与另一个lib对话,该lib正在通过同一libcrypto lib建立另一个TLS套接字,那么出现某种特定(和奇怪的)情况的可能性是什么?

我有点摸不着头脑,这段代码运行得很好,直到我们添加了Skype SDK,它通过TLS连接到Skype服务器,从那时起,我们实际上可以让这个问题重现,但我有点困惑为什么。(我可能忽略了显而易见的事情,但我将从真正奇怪的可能性开始)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-10 22:38:12

一般说来,这是可能的--但是写得好的库应该对多重访问是健壮的。您可能希望查看文档,看看它们的API是否是可重入的(甚至是thred安全的)。

如果它是线程安全的,那么(假设libcrypto作者没有犯错误)你可以确定这不是问题的原因。

如果它是可重入的,那么在两个(或更多)线程中使用这个库的任何东西都应该在访问时同步(例如。使用互斥锁),但如果部分代码不是由您编写的,并且您没有选择修改它,那么您将陷入困境。我唯一能想到的就是使用另一个版本的libcrypto,这样系统就会创建另一个与其内部结构无关的实例。这是丑陋的灵魂,在用户机器上可能会表现得很奇怪。

票数 2
EN

Stack Overflow用户

发布于 2011-10-10 22:39:55

有一个完整的手册页专门介绍OpenSSL库和线程的用法:man 3 threads。如果您的应用程序有多个使用OpenSSL库的线程,则需要使用此函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7713983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档