忽略调用openssl EVP_cleanup会导致严重的缺陷或内存泄漏
Will ignoring to call openssl EVP_cleanup result in serious flaws or memory leaks?
我的申请中有一个奇怪的情况。我正在使用OpenSSL中的EVP方法来计算摘要并执行加密。最后,我在我的 CryptoProvider 类(我的应用程序的主要网关)的析构函数中执行 EVP_cleanup()。它从OpenSSL状态卸载所有算法等。
但是,如果客户端将其用于其他用途,则无法在我的应用程序之外无缝使用 OpenSSL。它也清理了他们的工作。
现在,我只剩下这些选择:
-
忽略 EVP_cleanup()。这会导致泄漏或其他后果吗?
在我的 应用程序中设置一个用于清理的静态 API,客户端必须在其生存期结束时调用该 API,这远远晚于我的应用程序生存期。
只需信任客户端在其生命周期结束时调用EVP_cleanup即可。
你认为你会在这里做什么?
我今天早上有这个问题,遇到了这个线程......如果我能找到以下响应,这将节省我的时间:
EVP_cleanup() 函数在 OpenSSL 版本 1.0.2h 和 1.1.0 中已弃用。
有关完整详细信息,请参阅他们的更新日志。
摘录:
"使各种清理例程成为无操作,并将它们标记为已弃用。不再需要大多数全局清理函数,因为它们是通过 auto-deinit 处理的(请参见手册页OPENSSL_init_crypto和OPENSSL_init_ssl)。显式取消启动可能会导致问题(例如,使用 OpenSSL 的库取消初始化,但应用程序仍在使用它)。受影响的函数是CONF_modules_free(),ENGINE_cleanup(),OBJ_cleanup(),EVP_cleanup(),BIO_sock_cleanup(),CRYPTO_cleanup_all_ex_data(),RAND_cleanup(),SSL_COMP_free_compression_methods(),ERR_free_strings()和COMP_zlib_cleanup()"。
- valgrind-hellgrind与泄漏检查的结果不同
- 从构造函数抛出异常时如何克服内存泄漏
- malloc() 可能出现内存泄漏
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 尽管遵循了规则,内存泄漏在哪里
- 为什么调用堆栈数组会导致内存泄漏
- 当基类是依赖类型时,这是一个缺陷吗
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 使用模板类的自定义列表类型中的内存泄漏
- 为什么以下C++代码中存在内存泄漏?
- Klocwork Inside的资源泄漏
- OpenCV 我应该使用智能指针来防止内存泄漏吗?
- 我是否生成线程并导致内存泄漏?
- 多线程程序中出现意外的内存泄漏
- 为什么此函数会导致内存泄漏?
- 在这个函数中是有缺陷的,因为取消引用 null 是无效的,所以我想更改代码
- 这是 basic.def.odr 部分的缺陷吗?
- 在 C++ 库中使用cythonized python时内存泄漏
- 需要帮助查找内存泄漏
- 忽略调用openssl EVP_cleanup会导致严重的缺陷或内存泄漏