我一直在將openssl整合到應用程序中。這裏是一個嘗試在c中完整的異步openssl例子。 https://stackoverflow.com/questions/33313838/please-criticize-this-complete-async-openssl-example-in-cc中是否存在沒有內存泄漏和未初始化內存讀取的SSL庫?
但是,在現實世界的應用程序中使用openssl而不是在那個例子中,valgrind報告了大量的內存泄漏,並且'條件取決於未初始化的內存'錯誤。這些錯誤中的一部分泄漏到應用程序使用的輸入中,因此這些錯誤的堆棧不在openssl庫中,因此無法被抑制。
看來,openssl不是valgrind的設計。是否有任何valgrind乾淨的openssl的替代品?
快來吧。 OpenSSL嵌入在Apache HTTPD,OpenLDAP,MySQL中......這些是主要*產品,而不是其中之一展示內存泄漏。我已經有三年都在運行了。 – EJP
@EJP是的,但你有沒有在valgrind下運行這些應用程序?您將看到這些應用程序使用openssl配置的未公開的內存關閉,並且它們具有無數未初始化的內存讀取。谷歌的openssl和valgrind,你自己看,這是一個衆所周知的問題。 –
@EJP即使官方的openssl文檔也承認openssl有一些無法清理的內存泄漏。你可以在這裏閱讀它https://wiki.openssl.org/index.php/Library_Initialization –