To summarize: We have a DLL that statically links OpenSSL. Our DLL gets loaded and unloaded multiple times by a process (not our process), and we need to release OpenSSL each time. This was not possible with OpenSSL 1.1 as of October
2016 as the process’s atexit is where it gets released which will not be called after a FreeLibrary() call on our DLL. Has this been revisited? If there is still not a way to manually release OpenSSL, are there any plans to add this ability?
From the previous post, something like this would address the issue:
“I'm wondering whether an option to override the default behaviour might
be possible, e.g. an explicit call to OPENSSL_init_crypto() with
something like an OPENSSL_INIT_NO_ATEXIT_CLEANUP option. The application
would then have to call OPENSSL_cleanup() explicitly.”