pocoproject / poco

The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.
https://pocoproject.org
Other
8.07k stars 2.11k forks source link

OpenSSLInitializer::uninitialize() Openssl 3.x #4451

Open micheleselea opened 5 months ago

micheleselea commented 5 months ago

If we use Openssl 3.x basically OpenSSLInitializer::uninitialize() does nothing. In initialize is called CONF_modules_load() and probably we should call something like CONF_modules_unload(1); And we should probably call even OSSL_PROVIDER_unload(_defaultProvider); and OSSL_PROVIDER_unload(_legacyProvider);

obiltschnig commented 5 months ago

From what I remember we tried this in the past, but it would lead to a crash when shutting down the application.

micheleselea commented 5 months ago

My app was crashing on exit because I did Poco::Net::uninitializeSSL(); in a Singleton destructor. I removed from the destructor and do it more explicit and it's working. Anyway I think it's not such a problem even the OpenSSLInitializer::uninitialize() does nothing because usually it's called on shut down

matejk commented 5 months ago

Which version of Poco?

micheleselea commented 5 months ago

latest