gpt4 book ai didi

c++ - 使用 libssl/libcrypto 的段错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:45 29 4
gpt4 key购买 nike

这更像是一个假设,而我正在调试一些代码。假设我有一个应用程序(称为 X)调用一个库以通过 TLS 加密的 SMTP 连接发送电子邮件,同时 X 正在与另一个库交谈,该库通过相同的 libcrypto 库建立另一个 TLS 套接字,在某个函数调用因段错误而失败的特定(和怪异)情况下,出现这种情况的可能性有多大?

我有点抓不住稻草,这段代码工作得很好,直到我们添加了通过 TLS 连接到 Skype 服务器的 Skype SDK,从那时起我们实际上可以让问题重复,但我有点困惑至于为什么。 (我可能忽略了显而易见的事情,但我将从真正奇怪的可能性开始)

最佳答案

一般来说,这是可能的 - 但编写良好的库应该对多重访问具有鲁棒性。您可能需要查看文档以了解他们的 API 是否可重入(或者甚至是线程安全的)。

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

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

关于c++ - 使用 libssl/libcrypto 的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7713983/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com