Talk:Library Initialization

From OpenSSLWiki
Revision as of 20:59, 29 July 2019 by Jwalton (talk | contribs)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

You said: "CRYPTO_cleanup_all_ex_data and ERR_remove_state should be called on each thread, and not just the main thread."

However the FAQ says:

"Brutal" (thread-unsafe) Application-global cleanup functions:

  ERR_free_strings(), EVP_cleanup() and CRYPTO_cleanup_all_ex_data().'

And the code comments for CRYPTO_cleanup_all_ex_data() say:

/* Release all "ex_data" state to prevent memory leaks. This can't be made
 * thread-safe without overhauling a lot of stuff, and shouldn't really be
 * called under potential race-conditions anyway (it's for program shutdown
 * after all). */

So I don't think its right to say CRYPTO_cleanup_all_ex_data() should be called on each thread. --Matt (talk) 14:30, 7 May 2015 (UTC)

This is going back 5 or 7 years... I was having trouble under Valgrind. I asked a few messages on the mailing list about how to cleanup properly. Both CRYPTO_cleanup_all_ex_data and ERR_remove_state (on each thread) dropped out of the messages/questions. Also see Order of Cleanup to avoid memory leaks?. I don't know if it correct thing to do nowadays.
Jwalton (talk) 20:58, 29 July 2019 (UTC)