libgcrypt thread safety

Adam Martinson adam.r.martinson at gmail.com
Wed Feb 8 14:48:06 CST 2012


I've been looking into bug 27036 
<http://bugs.winehq.org/show_bug.cgi?id=27036> , and it's due to the 
lack of thread safety by default in libgcrypt (in this case via 
libgnutls in secur32.dll).  To be thread safe, libgcrypt requires a call 
to gcry_control(GCRYCTL_SET_THREAD_CBS) before any libgcrypt 
initialization is done.  However, libgcrypt is used by a lot of 
different libs, one of which is being used by some other dll that's 
loading before secur32.dll.

My question is, is it acceptable to do the gcry_control() call in 
ntdll's DllMain()?  The alternative seems to be tracking down every lib 
used by wine that uses libgcrypt and doing it in each of those dlls.  
What's the best way to handle this?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20120208/a588a3b6/attachment.html>


More information about the wine-devel mailing list