我一直在将openssl集成到一个应用程序中。这是在c中尝试完整的异步openssl示例。 https://stackoverflow.com/questions/33313838/please-criticize-this-complete-async-openssl-example-in-c
然而,似乎在现实世界的应用程序中使用openssl而不是在该示例中,valgrind报告了非常大量的内存泄漏,并且条件取决于未初始化的内存'错误。其中一些错误会渗透到应用程序使用的输入中,因此这些错误的堆栈不在openssl库中,因此无法抑制。
似乎openssl并非valgrind设计干净。有什么替代品可以替代openssl做valgrind清洁吗?
答案 0 :(得分:3)
c中是否存在没有内存泄漏的SSL库....
虽然OpenSSL绝对没有完美无缺,但我怀疑它是否存在您描述的内存泄漏问题。它被用在许多项目中,比如nginx,它们可以编写和读取大量的SSL数据并进行大量的SSL握手,因此内存泄漏很快就会出现。可能因为OpenSSL does it's own memory management而对valgrind感到困惑。