The OBJ_txt2obj() problem has already been solved. The EVP reinit
problem is very easy to solve, actually. Somply remove the flag
variable, which is exactly what has been decided within the team.
I'm sure many will scream at this decision. However, think about
it, the only way that flag variable is useful is to take care of
people who can't keep track of what they've done already ("have we
already called OpenSSL_add_all_ciphers() or not?"). Also, if
someone is imagining that several threads could do some kind of
reinitialization of the in-memory cipher and digest database, think
again. That would be a really good way to screw things up.
The only time OpenSSL_add_all_ciphers(), OpenSSL_add_all_digests()
and EVP_cleanup() should be used is when the running program has
only one thread. And if a single-threaded program reinits by
calling EVP_cleanup() and then OpenSSL_add_all_*(), it works a lot
better if the flag variable isn't hindering. Again, that requires
that the programmer keeps track of what he or she is doing.
The change is now committed, and this ticket is now resolved.
--
Richard Levitte
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]